예외 처리 및 Throw
업데이트: 2007년 11월
프로그램에서는 실행 중 발생하는 오류를 일관되게 처리할 수 있어야 합니다. 공용 언어 런타임에서는 일관된 방법으로 프로그램에 오류를 알리는 모델을 제공함으로써 내결함성이 있는 소프트웨어의 디자인을 지원합니다. 모든 .NET Framework 작업에서는 예외를 throw하여 오류를 나타냅니다.
기존의 언어 오류 처리 모델은 해당 언어에서 고유하게 제공하는 오류 감지 및 해당 오류 처리기 지정 방식에 의존하거나 운영 체제에서 제공하는 오류 처리 메커니즘에 의존했습니다. 런타임에서는 다음과 같은 기능을 사용하여 예외 처리를 구현합니다.
예외를 생성하는 언어나 예외를 처리하는 언어에 관계없이 예외를 처리합니다.
예외 처리에 특별한 언어 구문이 필요하지는 않지만 각 언어에서 고유한 구문을 정의할 수 있도록 허용합니다.
프로세스나 컴퓨터에 의해 그 범위를 제한 받지 않고 예외가 throw되도록 허용합니다.
예외를 사용하면 반환 코드와 같은 다른 오류 알림 방법 이상의 몇 가지 장점을 활용할 수 있습니다. 오류를 그냥 지나치지 않습니다. 잘못된 값이 시스템을 통해 다른 위치로 전파되지 않습니다. 반환 코드를 검사할 필요가 없습니다. 예외 처리 코드를 쉽게 추가하여 프로그램의 신뢰도를 높일 수 있습니다. 마지막으로, 이 런타임에서의 예외 처리는 Windows 기반 C++ 오류 처리보다 속도가 빠릅니다.
예외 스레드가 관리 코드 블록 및 비관리 코드 블록을 정기적으로 순회하기 때문에 런타임에서는 관리 코드 또는 비관리 코드에서 예외를 throw하거나 catch할 수 있습니다. 비관리 코드에는 C++ 형식의 SEH 예외와 COM 기반 HRESULTS를 사용할 수 있습니다.
단원 내용
예외 개요
공용 언어 런타임 예외를 개략적으로 설명합니다.Exception 클래스 및 속성
예외 개체의 각 요소에 대해 설명합니다.예외 계층
대부분의 예외를 파생시키는 예외에 대해 설명합니다.예외 처리 기본 사항
catch, throw, finally 문을 사용하여 예외를 처리하는 방법에 대해 설명합니다.최선의 예외 처리 구현 방법
최선의 예외 처리 방법을 제안하고 설명합니다.COM Interop 예외 처리
비관리 코드에서 throw되고 catch되는 예외를 처리하는 방법에 대해 설명합니다.
참조
Exception 클래스
모든 예외에서 상속 받는 클래스에 대한 참조 정보입니다.ApplicationException 클래스
응용 프로그램에서 생성한 모든 예외를 파생시키는 클래스에 대한 참조 정보입니다.SystemException 클래스
시스템에서 생성한 모든 예외를 파생시키는 클래스에 대한 참조 정보입니다.
관련 단원
고급 수준의 COM 상호 운용성
관리 코드 및 비관리 코드 사이에서 예외가 작동되는 방식에 대해 설명합니다.방법: HRESULT 및 예외 매핑
관리 코드 및 비관리 코드 사이에 예외를 매핑하는 방법에 대해 설명합니다.