C++는 구조화되고 더욱 우아한 예외 처리 메커니즘을 제공합니다. 이 구조화된 메커니즘은 일반적으로 실행되는 코드와 프로그램의 예외 처리 부분을 분리하여 프로그램을 더욱 명확하고 읽기 쉽게 만듭니다.
다음으로 두 부분으로 나누어진 예외 처리 구조를 살펴보겠습니다.
try{//일반 프로그램 실행문 throw(예외 유형 표현);}catch(예외 유형 1){//예외 처리 코드}catch(예외 유형 2){//예외 처리 코드}catch(예외 유형 3){ / /예외 처리 코드}//다음 코드
위는 try , throw 및 catch 세 가지 키워드를 사용하는 C++의 예외 처리 코드 형식입니다.
코드가 실행되면 먼저 try 코드 블록을 만나게 됩니다. 그 기능은 예외 처리 메커니즘을 시작하고 try 코드 실행 중에 발생한 예외를 감지한 다음 throw를 통해 예외를 발생시키는 것입니다. 상수 또는 변수 표현식. 다음에는 다음 catch 문 블록과 일치(캡처)한 후 해당 코드가 실행됩니다. 일치하는 유형이 없으면 실행을 계속합니다. 일치하는 항목이 없으면 quit() 함수가 자동으로 호출됩니다. 기본 함수는 프로그램을 종료하는 abort() 입니다.
나누기 연산 중 제수가 0인 경우의 예외 처리는 다음과 같습니다.
#include<iostream>usingnamespacestd;intmain(){inta,b;cin>>a>>b;try{if(b==0)throwerror!b<0;}catch(constchar*str){cout<<str <<endl;}catch(int){cout<<throwint<<endl;}return0;}
try에서 b가 0이면 문자열이 던져지고 catch 일치가 입력되는 것을 볼 수 있습니다. 분명히 첫 번째 catch가 일치하고 str 값이 출력됩니다. 이해하다!