Filtered Exception Handling은 C# 6.0에서 도입되었으나, 많은 개발자들에게 유용한 기능으로 여겨져 여기서 설명하겠습니다. 이 기능을 사용하면 catch 블록에서 예외를 처리하기 전에 특정 조건을 평가할 수 있습니다. 이를 통해 특정 조건에 해당하는 예외만 처리할 수 있습니다.
아래는 Filtered Exception Handling을 사용한 예시 C# 코드입니다:
using System;
class Program
{
static void Main(string[] args)
{
try
{
throw new ArgumentException("This is an argument exception with the parameter 'test'.", "test");
}
catch (ArgumentException ex) when (ex.ParamName == "test")
{
Console.WriteLine("Caught exception for parameter 'test'.");
}
catch (ArgumentException ex) when (ex.ParamName == "other")
{
Console.WriteLine("Caught exception for parameter 'other'.");
}
}
}
위의 코드에서:
- 첫 번째 catch 블록은 ArgumentException의 ParamName 프로퍼티가 "test"일 때만 해당 예외를 처리합니다.
- 두 번째 catch 블록은 ParamName 프로퍼티가 "other"일 때만 해당 예외를 처리하려고 합니다.
실제로 예외는 "test"라는 파라미터 이름을 갖기 때문에 첫 번째 catch 블록이 실행되며, "Caught exception for parameter 'test'."라는 메시지가 출력됩니다.
이러한 필터링 조건을 사용하면 복잡한 catch 블록 내의 로직을 단순화하거나 여러 조건을 기반으로 다양한 예외를 세밀하게 처리할 수 있습니다.
'워크 > C# 5.0' 카테고리의 다른 글
속성 강화 (0) | 2023.08.31 |
---|---|
Windows Runtime (WinRT) 지원 (0) | 2023.08.30 |
향상된 for 루프와 foreach 루프 (0) | 2023.08.28 |
Caller Information Attributes (0) | 2023.08.28 |
Async/Await (0) | 2023.08.28 |