다음을 통해 공유


방법: try/catch를 사용하여 예외 처리(C# 프로그래밍 가이드)

try-catch 블록의 사용 목적은 작업 코드에서 발생하는 예외를 catch하여 처리하는 것입니다. 일부 예외는 catch 블록에서 처리할 수 있고 예외를 다시 throw할 필요 없이 문제가 해결됩니다. 그러나 대부분의 경우에는 적절한 예외가 throw되었는지 확인하는 작업만 할 수 있습니다.

예제

다음 예제에서 IndexOutOfRangeException은 가장 적절한 예외가 아닙니다. 이 오류는 호출자가 전달한 index 인수 때문에 발생한 것이므로 해당 메서드에는 ArgumentOutOfRangeException이 보다 적절합니다.

class TestTryCatch
{
    static int GetInt(int[] array, int index)
    {
        try
        {
            return array[index];
        }
        catch (System.IndexOutOfRangeException e)  // CS0168
        {
            System.Console.WriteLine(e.Message);
            // Set IndexOutOfRangeException to the new exception's InnerException.
            throw new System.ArgumentOutOfRangeException("index parameter is out of range.", e);
        }
    }
}

설명

예외가 발생한 코드는 try 블록으로 묶여 있습니다. 예외가 발생할 때 IndexOutOfRangeException을 처리하기 위한 catch 문이 바로 다음에 추가되어 있습니다. catch 블록에서는 IndexOutOfRangeException을 처리하고 보다 적합한 ArgumentOutOfRangeException 예외를 대신 throw합니다. 호출자에 가능한 한 많은 정보를 제공하려면 원래 예외를 새 예외의 InnerException으로 지정하는 것이 좋습니다. InnerException 속성은 읽기 전용이므로 새 예외의 생성자에서 이 속성을 할당해야 합니다.

참고 항목

참조

예외 및 예외 처리(C# 프로그래밍 가이드)

예외 처리(C# 프로그래밍 가이드)

개념

C# 프로그래밍 가이드