단일 코드 블록에서 여러 예외 포착
프로그래밍 언어에서 예외 포착은 오류 처리의 중요한 부분입니다. 그러나 여러 특정 예외를 포착해야 하는 경우, 특히 개체에 대해 여러 작업을 수행할 때 장황하고 반복적일 수 있습니다.
질문:
쿼리 문자열에서 GUID를 구문 분석하고 이를 필드로 설정하는 다음 코드를 고려하세요.
<code>try { WebId = new Guid(queryString["web"]); } catch (FormatException) { WebId = Guid.Empty; } catch (OverflowException) { WebId = Guid.Empty; }</code>
이 예에서는 GUID 구문 분석 중에 FormatException 또는 OverflowException이 발생하면 WebId가 Guid.Empty로 설정됩니다. 그러나 다른 예상치 못한 예외가 발생하면 처리되지 않고 전파됩니다. 상용구 코드를 피하고 여러 예외를 효율적으로 처리하려면 더 나은 솔루션이 필요합니다.
해결책: System.Exception을 포착하고 유형에 따라 전환
단일 코드 블록에서 여러 예외를 포착하려면 catch(Exception ex) 구문을 사용할 수 있습니다. 이는 FormatException 및 OverflowException과 같은 특정 예외를 포함하여 기본 Exception 클래스에서 상속된 모든 예외를 포착합니다.
예외를 포착한 후 예외 유형에 따라 스위치 문을 사용하여 처리 방법을 결정할 수 있습니다. 예외가 알려진 예외인 경우(예: FormatException 또는 OverflowException) 특정 작업을 수행할 수 있습니다(예: WebId를 Guid.Empty로 설정). 그렇지 않으면 상위 수준 코드에서 예외를 처리할 수 있도록 예외를 다시 발생시킬 수 있습니다.
<code>catch (Exception ex) { if (ex is FormatException || ex is OverflowException) { WebId = Guid.Empty; } else throw; }</code>
이 접근 방식을 사용하면 코드 블록에서 여러 특정 예외를 포착하고 필요에 따라 처리하는 동시에 예상치 못한 예외가 전파되도록 허용할 수 있습니다.
위 내용은 단일 코드 블록에서 여러 예외를 효율적으로 포착하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!