2016-09-22 1 views
2

이전 VB6 응용 프로그램을 지원하고 있으며 코드가 Err.Raise와 Error.Raise를 모두 사용하는 이유가 궁금합니다. 두 데이터베이스 호출 후에 유효성 검사에 나타납니다.VB6에서 Err.Raise와 Error.Raise의 차이점

이 응용 프로그램을 C#으로 마이그레이션하고 있으며 C#의 두 가지 동작을 올바르게 재현하기 위해이 두 명령의 미묘한 차이점을 이해하려고합니다.

나는 Error.Raise에 대한 정보를 검색하는 데 꽤 많은 시간을 보냈으며 유용한 것을 찾지 못했습니다.

덕분에,

이브

+5

Error.Raise에는 내장되어 있지 않지만 오류 코드 인 ErrObject를 만들 수 있습니다. 오류를 마우스 오른쪽 단추로 클릭하고 정의를 클릭하면 나타나는 위치를 볼 수 있습니다. – Marc

+0

정의를 클릭하면 VB6 라이브러리를 참조합니다. VBA.Conversion에 정의되어 있습니다. 인수로 오류 번호를 취하는 함수이며 주어진 오류 번호에 대한 오류 메시지를 반환합니다. 어쩌면 VB6 컴파일러는 Err.Raise에 의해 Error.Raise를 그냥 대체합니까 ??? –

+0

빈 VB6 프로젝트를 새로 만들면 '오류'라는 개체가 전혀 없습니다. 이는 특정 프로젝트에 도입 된 것일 수 있습니다. 나는 그것의 예를 발견 할 것이고,'Error'를 오른쪽 클릭하고'Definition'을 선택하여 그것이 어디로가는지도 볼 수 있습니다. – DaveInCaz

답변

2

@Marc은 옳았다. Error.Raise가 잘못되었습니다.

On Error Goto 문의 범위 내에서 "Error.Raise 1234"를 호출하면 Err.number = 424 및 Err.Description = "Object required"인 오류 블록으로 분기됩니다.

해결 방법은 분명합니다. Err.Raise를 Error.Raise로 대체하십시오.