구조적 예외 처리

예외는 프로그램을 실행하는 동안 발생하는 이벤트이며 일반적인 컨트롤 흐름을 따르지 않고 코드를 실행해야 합니다. 예외에는 하드웨어 예외와 소프트웨어 예외가 있습니다. 하드웨어 예외는 CPU에서 시작됩니다. 0으로 나누기 또는 유효하지 않은 메모리 주소에 액세스하려는 시도와 같은 특정 명령 시퀀스가 실행되어 발생할 수 있습니다. 소프트웨어 예외는 애플리케이션 또는 운영 체제에서 명시적으로 시작됩니다. 예를 들어 시스템에서 유효하지 않은 매개 변수 값이 지정된 경우를 감지할 수 있습니다.

구조적 예외 처리는 하드웨어 및 소프트웨어 예외를 모두 처리하는 메커니즘입니다. 따라서 코드는 하드웨어 및 소프트웨어 예외를 동일하게 처리합니다. 구조적 예외 처리를 사용하면 예외 처리를 완전히 컨트롤하고 디버거를 지원하며 모든 프로그래밍 언어 및 컴퓨터에서 사용할 수 있습니다. 벡터화된 예외 처리기는 구조화된 예외 처리의 확장입니다.

또한 시스템은 종료 처리를 지원하므로 보호된 코드 본문이 실행될 때마다 지정된 종료 코드 블록도 실행되도록 할 수 있습니다. 종료 코드는 컨트롤 흐름이 보호된 본문을 벗어나는 방식에 관계없이 실행됩니다. 예를 들어 종료 처리기는 코드의 보호된 본문이 실행되는 동안 예외 또는 다른 오류가 발생하더라도 정리 작업이 수행되도록 보장할 수 있습니다.