vb6 프로젝트 (ActiveX DLL)를 관리하고 있습니다. 디버깅 할 때, 응용 프로그램은 다음과 같은 기능으로 실행VB6 디버깅 - 오류 처리 코드로 이동하지 않습니다.
Public Function HasValue(ByVal vValue) As Boolean
On Error GoTo Err
If IsMissing(vValue) Then
HasValue = False
ElseIf IsNull(vValue) Or Len(vValue) = 0 Then
HasValue = False
ElseIf isEmpty(vValue) Then
HasValue = False
Else
HasValue = True
End If
Exit Function
Err:
If IsArray(vValue) Or IsObject(vValue) Then
HasValue = True
Else
HasValue = False
End If
End Function
하고 라인
의 ElseIf ISNULL (vValue) 또는 렌 (vValue) = 0에서 정지 그런
vValue 사용자 정의 개체입니다 , 일부 속성 (분명히 null이 아님)을 포함합니다.
거기에 중단 점을 넣지는 않았지만 앱이 멈추고 "런타임 오류 '438': 개체가이 속성이나 메서드를 지원하지 않는다는 오류 대화 상자가 표시됩니다.
오류 처리 코드가 있지만 응용 프로그램이 오류 처리 코드로 실행되지 않았습니다. 그것은 단지 오류를 일으키는 라인에서 멈췄다. 그리고 나는 어플리케이션을 멈춰야 만했다.
그 점에 대해 알고 계십니까? 대단히 감사합니다.
호를 해결할 수
에 코드를 변경. – Mudassir
이 질문과 관련하여 문제를 혼동시키는 몇 가지 사항이 있습니다. 1. IsMissing을 사용하고 있지만,'vValue'는'Optional'로 선언되어 있지 않습니다. 'IsMissing'은 메소드에 전달되지 않는'Optional Variant' 매개 변수를 탐지하는 데 사용됩니다. 2. 귀하의 의견에 따르면 'vValue'는 객체이지만 코드는 IsNull 및 Len을 사용하여 객체를 테스트합니다. 객체 참조는'Is Nothing'으로 테스트됩니다. 이 코드는 축 어적으로 게시 되었습니까? – JeffK
예, 코드가 그대로 유지되는 앱에서 그대로 복사되었습니다. 나는 개발자가 구현 한 방식에 매우 놀랐다. 어쨌든 여기 논리를 무시하십시오. 난 왜 응용 프로그램이 오류 처리 코드로 실행되지 않는지 궁금해. 감사합니다 – nobitavn94