2009-08-27 2 views
1

다음 코드 세그먼트 (null 객체가 참조되는) 런타임에서 R0002 오류가 발생합니다 : 그 이유IsNull()은 null 객체에 대한 참조를 보호합니까? 내 파워 빌더 응용 프로그램에서

Window w = windows[idx] 
IF NOT IsNull(w) THEN 
    MessageBox("", "ClassName is " + w.GetClassName()) // This line crashes 
END IF 

는 사람은 알고 있나요? 나는 IsNull()이 특별히 null 값을 테스트하기위한 것이라는 인상을 받았다.

답변

5

저는 이것이 다른 종류의 NULL이라고 생각합니다. 하나는 NULL 값이있는 변수입니다. 다른 하나는 존재하지 않거나 인스턴스화되지 않은 개체입니다.

두 번째 경우에는 isValid()를 사용하는 것이 좋습니다.

3

IsValid(w)을 사용하여 오브젝트 변수가 인스턴스화되었는지 여부를 판별 할 수 있습니다 (값이 유효한 오브젝트 핸들인지 여부).