1. 이상의 근원.
Delphi의 응용 프로그램에서 다음 상황은 예외를 생성 할 가능성이 더 높습니다.
(1) 파일 처리
(2) 메모리 할당
(3) Windows 리소스
(4) 런타임 중에 객체와 양식을 만듭니다
(5) 하드웨어 및 운영 체제 충돌
?
2. 예외 처리.
(1) 시도 … 끝을 제외하고 ;
Try Body의 코드에서 예외가 발생하면 시스템은 예외 처리를 위해 제외 부분으로 전환됩니다. 이것은 델파이가 예외를 처리하는 가장 기본적인 방법 중 하나입니다.
?
(2) 시도 … 마침내 … 끝 ;
이 예외 처리 구조는 일반적으로 Windows 리소스 할당 및 기타 측면을 보호하는 데 사용됩니다. Try Body의 코드가 예외가 있는지 여부에 관계없이 시스템은 균일하게 처리되는 일부 Windows 객체의 올바른 처리를 처리해야합니다.
끝을 제외하고는 ... 끝을 제외하고, 마침내 구조의 일부는 항상 실행됩니다.
?
(3) 시도는 없습니다 ... 마지막으로 ... 예외를 처리하고 자원 할당 구조를 보호하기위한 최종 구조. 마지막으로 ... 예외의 처리를 실현하고 자원의 할당을 보호합니다.
?
?
3. 예외의 정확한 처리.
(1) 예외를 정의합니다.
델파이에서 각 예외는 예외 [1] 클래스의 파생 클래스 [2]입니다. 따라서 예외를 정의하는 것은 예외 클래스의 파생 클래스를 정의하는 것입니다.
emyexception = class (예외)를 입력합니다.
물론 기본 클래스는 예외 또는 예외 수준 일 수 있습니다.
?
(2) 프로그램에서 예외를 던집니다.
다른 상황에 따른 예외는 예외를 사용하는 가장 기본적인 모드입니다. 델파이에서는 Raine 성명서에 의해 구현됩니다.
[구문] Exception Class.create를 높이십시오 ( '예외의 기본 설명');
?
(3) 시도에서 더 정확하게 예외를 포착합니다 ... 끝을 제외하고.
ON E : Exception Class Do ... 구조를 사용하여 Do Body의 특정 예외 클래스에서 발생하는 예외를 처리합니다.
?
4. 예외 디버깅.
Delphi IDE에서 "디버거 옵션"에서 통합 디버깅 확인란의 확인 상태를 선택 취소하십시오 (메뉴 도구 -> 디버거 옵션… 액세스 할 수 있음).
?
5. 이상에 대한 보충 설명.
(1) 모든 프로그램은 오류가 발생할 수 있습니다! 이것은 소프트웨어 산업에서 의심 할 여지가없는 현상과 법입니다. 실제로, 전통적인 if ... 구조는 모든 오류를 완전히 해결할 수 있습니다.
대답은 분명합니다. 예외는보다 유연하고 개방적인 방법을 제공하여 나중에 프로그래머가 사전 설정된 처리 결과를 사용하지 않고 실제 조건에 따라이 오류를 처리 할 수 있도록합니다. 사실, 나는 이것이 예외 메커니즘의 핵심이라고 생각합니다.
[1] 예외 클래스의 정의는 sysutils 단위에 있습니다.
[2] Delphi는 또한 예외에서 물려받지 않는 예외 클래스를 지원하지만 그렇게하는 것이 현명하지 않다고 생각합니다.