사용자 필터 예외 처리기 사용
사용자 필터 예외 처리기는 예외에 대해 정의한 요구 사항을 기반으로 하여 예외를 catch하고 처리합니다. 이러한 처리기는 when
키워드(Visual Basic의 경우 Catch
및 When
)와 함께 catch
문을 사용합니다.
이 기법은 특정 예외 개체가 여러 오류에 해당하는 경우에 유용합니다. 이 경우 개체는 일반적으로 오류와 관련된 특정 오류 코드를 포함하는 속성을 갖습니다. 식에서 해당 오류 코드 속성을 사용하여 catch
절에서 처리하려는 특정 오류만 선택할 수 있습니다.
다음 예에서는 catch
/when
문을 보여 줍니다.
try
{
//Try statements.
}
catch (Exception ex) when (ex.Message.Contains("404"))
{
//Catch statements.
}
Try
'Try statements.
Catch When Err = VBErr_ClassLoadException
'Catch statements.
End Try
사용자 필터 절의 식에는 어떤 제한도 적용되지 않습니다. 사용자 필터 식을 실행하는 중에 예외가 발생하면 예외는 무시되고 필터 식이 false로 계산된 것으로 간주됩니다. 이 경우 공용 언어 런타임은 현재 예외에 대한 처리기를 계속 검색합니다.
특정 예외 조항과 사용자 필터링 조항을 결합합니다.
catch
문은 특정 예외와 사용자 필터 절을 모두 포함할 수 있습니다. 런타임은 특정 예외를 먼저 테스트합니다. 특정 예외가 성공하면 런타임은 사용자 필터를 실행합니다. 일반 필터에는 클래스 필터에 선언된 변수에 대한 참조가 포함될 수 있습니다. 두 필터 절의 순서는 바꿀 수 없습니다.
다음 예에서는 catch 문의 특정 예외와 when 키워드를 사용하는 사용자 필터링 절을 보여 줍니다.
try
{
//Try statements.
}
catch (System.Net.Http.HttpRequestException ex) when (ex.Message.Contains("404"))
{
//Catch statements.
}
Try
'Try statements.
Catch cle As ClassLoadException When cle.IsRecoverable()
'Catch statements.
End Try
참고 항목
GitHub에서 Microsoft와 공동 작업
이 콘텐츠의 원본은 GitHub에서 찾을 수 있으며, 여기서 문제와 끌어오기 요청을 만들고 검토할 수도 있습니다. 자세한 내용은 참여자 가이드를 참조하세요.
.NET