2011-06-11 4 views
2

서브 블록에서 try/catch 블록이 성공해야 함을 요구하지만 catch 블록이 예외를 버블 링하지 않도록하는 규칙은 무엇입니까?try/catch 블록에서의 에러 처리

모든 코드를 try 블록에 넣을 수는 있지만 대부분 시도가 필요하지 않으므로 지저분 해 보입니다. 성공을 시도해야합니다.

예를 들어 catch 블록이 sub를 종료해야합니까? 이것은 현재의 상황에서 잘 작동 할 것입니다. 적절한 절차라면 알려주세요.하지만 성공과 실패 모두 추가 처리가 필요한보다 일반적인 시나리오는 어떻습니까?

+0

이걸 이해하기가 어렵습니다. borked 예외 처리를 다루는 협약은 없습니다. 어쩌면 당신은 부울을 반환하는 함수로 만들어야하고, False는 '작동하지 않는다'는 것을 나타낼 수 있습니다. –

답변

2

나는 그렇게

Dim success As Boolean = False 

    Try 
     'Code to execute 
     success = True 
    Catch ex As Exception 
    End Try 

    If success Then 
     'success processing 
    Else 
     'failure processing 
    End If 
0

이는 답이없는 오래된 질문의 라인을 따라 뭔가, 그래서 나는 아마도 다른 사람을 도울 수있는 대답하려고합니다.

Dim successState As Boolean = True 
Try 
    ' Do something in here that 
    ' might raise an error. 
Catch 
    ' Handle exceptions that occur within 
    ' the Try block, here. 
    successState = False 
Finally 
    ' Perform cleanup code in here. 
End Try 

If successState Then 
    MessageBox.Show("Success!") 
End If 

이 오류를 잡을 때, 더 성공 상자가 표시되지 않습니다 :

이 시도해보십시오.