워크/C# 5.0
Filtered Exception Handling
Dev A.i
2023. 8. 29. 08:23
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 블록 내의 로직을 단순화하거나 여러 조건을 기반으로 다양한 예외를 세밀하게 처리할 수 있습니다.