본문 바로가기

워크/C# 5.0

Filtered Exception Handling

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 블록 내의 로직을 단순화하거나 여러 조건을 기반으로 다양한 예외를 세밀하게 처리할 수 있습니다.

 

 

2023.08.30 - [워크/C# 5.0] - Windows Runtime (WinRT) 지원

'워크 > 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