try/catch를 사용하여 예외를 처리하는 방법
try-catch 블록은 작업 코드에서 생성된 예외를 catch하고 처리하기 위한 것입니다. 일부 예외는 catch
블록에서 처리될 수 있으며, 예외가 다시 throw되지 않고 문제가 해결됩니다. 그러나 대체로 수행할 수 있는 작업은 적절한 예외가 throw되었는지 확인하는 것뿐입니다.
예시
이 예제에서 IndexOutOfRangeException은 가장 적합한 예외가 아닙니다. 호출자가 전달한 index
인수로 인해 오류가 발생하기 때문에 ArgumentOutOfRangeException이 메서드에 더 적합합니다.
static int GetInt(int[] array, int index)
{
try
{
return array[index];
}
catch (IndexOutOfRangeException e) // CS0168
{
Console.WriteLine(e.Message);
// Set IndexOutOfRangeException to the new exception's InnerException.
throw new ArgumentOutOfRangeException("index parameter is out of range.", e);
}
}
설명
예외가 발생하는 코드는 try
블록으로 묶여 있습니다. catch
문이 발생하는 경우 IndexOutOfRangeException
을 처리하기 위해 바로 뒤에 추가됩니다. catch
블록은 IndexOutOfRangeException
을 처리하고 대신 더 적절한 ArgumentOutOfRangeException
을 throw합니다. 호출자에게 최대한 많은 정보를 제공하기 위해 원래 예외를 새 예외의 InnerException으로 지정하는 것이 좋습니다. InnerException 속성은 읽기 전용이기 때문에 새 예외의 생성자에 할당해야 합니다.
GitHub에서 Microsoft와 공동 작업
이 콘텐츠의 원본은 GitHub에서 찾을 수 있으며, 여기서 문제와 끌어오기 요청을 만들고 검토할 수도 있습니다. 자세한 내용은 참여자 가이드를 참조하세요.
.NET