2011-02-23 4 views
4

이전 VB.net 프로젝트를 상속 받았습니다. 코드는 주로 오류 처리를 위해 try-catch를 사용합니다. 그러나 어떤 곳에서는 If Err.Number <> 0 Then을 발견했습니다.Err.Number와 VB.net의 try-catch 비교

오류가 발생하면 Exception을 던져야하는지 아니면 Err으로 설정해야하는지 결정해야합니다.

나는 두 가지 에러 ​​처리하지 않으려는

...

+2

악명 높은 On Error Resume Next. –

답변

3

Err 객체가 이전 스타일 On Error 오류 처리 구조로 사용된다, 즉 고전 VB에서 나머지입니다. Try-Catch은 오류 처리의 최신 .NET 스타일입니다.

자세한 내용은 Error Handling in Visual Basic.NET에서 확인할 수 있습니다.

+0

어떤 오류 처리가 활성화되어 있는지 어떻게 결정합니까? 그냥 오류 올리미 스타일을 설정해야합니다, 제 생각 엔. – leiflundgren

+0

@leiflundgren :보고있는 코드와 가장 가까운 구문이 활성 코드입니다. 두 스타일을 혼합 할 수는 있지만 한 가지 방법은 사용할 수 없습니다. 따라서'On Error' 문으로 오류 처리를 설정 한 다음 Try-Catch를 사용하는 다른 메서드를 호출하는 한 가지 방법을 사용할 수 있습니다. –

+0

@ fredrik-mork : 아, 만약 내가 Error Goto 0 (또는 이와 유사한) On 메서드를 쓰면 그 stile을 사용합니다. 그렇지 않으면 try-catch입니까? – leiflundgren

1

이전 코드와 같은 소리는 On Error Resume Next를 사용하고있었습니다. 이상한 일이 무엇인지 이해했는지 확인하십시오!

docs이 오류에

은 다음 즉시 런타임 오류가 발생하거나 문을 즉시 중 가장 최근의 호출을 다음 문 다음 실행이 문으로 계속됩니다 다시 시작 설명 프로 시저에 On Error Resume Next 문이 포함되어 있습니다. 이 명령문을 사용하면 런타임 오류가 발생해도 실행을 계속할 수 있습니다. 오류 제어 루틴을 프로 시저 내의 다른 위치로 제어를 전달하는 대신 오류가 발생하는 위치에 배치 할 수 있습니다.

그런 다음 Err.Number <> 0을 사용하여 오류가 발생했는지 확인하십시오.