C++ 예외
C++ 예외
C++ 코드를 실행할 때 프로그래머의 코딩 오류, 잘못된 입력으로 인한 오류 또는 기타 예측할 수 없는 오류와 같은 다양한 오류가 발생할 수 있습니다.
오류가 발생하면 C++는 일반적으로 중지하고 오류 메시지를 생성합니다. 이에 대한 기술 용어는 C++에서 예외 가 발생 합니다(오류 발생).
C++ 시도 및 잡기
C++의 예외 처리는 try
, throw
및 3개의 키워드로 구성됩니다 catch
.
명령문을 사용하면 실행 되는 try
동안 오류를 테스트할 코드 블록을 정의할 수 있습니다.
문제가 감지되면 키워드 에서 throw
예외가 발생하여 사용자 지정 오류를 생성할 수 있습니다.
이 catch
명령문을 사용하면 try 블록에서 오류가 발생할 경우 실행할 코드 블록을 정의할 수 있습니다.
try
및 키워드 는 catch
쌍으로 제공됩니다.
예시
try {
// Block of code to try
throw exception;
// Throw an exception when a problem arise
}
catch () {
// Block of code to handle errors
}
다음 예를 고려하십시오.
예시
try {
int age = 15;
if (age >= 18) {
cout << "Access granted - you are old enough.";
} else {
throw (age);
}
}
catch (int
myNum) {
cout << "Access denied - You must be at least 18 years
old.\n";
cout << "Age is: " << myNum;
}
설명된 예
블록을 사용하여 try
일부 코드를 테스트합니다. age
변수가 보다 작으면 18
예외가 throw
발생하고 catch
블록에서 처리합니다.
catch
블록에서 오류를 포착하고 이에 대해 조치를 취합니다. 이 catch
명령문은 매개변수 를 취합니다 . 이 예에서 int
변수( )를 사용하여( 블록( ) 에서 유형 myNum
의 예외를 던지고 있기 때문에 ) 의 값을 출력합니다 .int
try
age
age
오류가 발생하지 않으면(예: if age
is 20
대신 15
, 즉 18보다 큼) catch
블록을 건너뜁니다.
예시
int age = 20;
또한 throw
키워드를 사용하여 구성 목적을 위한 사용자 지정 오류 번호/코드와 같은 참조 번호를 출력할 수 있습니다.
예시
try {
int age = 15;
if (age >= 18) {
cout << "Access granted - you are old enough.";
} else {
throw 505;
}
}
catch (int myNum) {
cout << "Access denied - You must be at least 18 years old.\n";
cout << "Error number: " << myNum;
}
모든 유형의 예외 처리(...)
블록에 사용된 throw
유형 을 모르는 경우 try
블록 내부에 "점 3개" 구문( ...
) 을 사용할 수 있습니다. 이 구문 catch
은 모든 유형의 예외를 처리합니다.
예시
try {
int age = 15;
if (age >= 18) {
cout << "Access granted - you are old enough.";
} else {
throw 505;
}
}
catch (...) {
cout << "Access denied - You must be at least 18 years
old.\n";
}