C++에서 오류 처리
이 간단한 가이드에서는 C++의 오류 및 예외 처리에 대해 설명합니다.
C++의 오류 처리
C++ 프로그램에는 여러 유형의 오류가 있을 수 있습니다. 일부 오류는 사용자에게 알림이 필요합니다.
사용자에게 적절한 오류 메시지를 제공하고 프로그램을 종료해야 합니다.
오류를 처리하기 위해 채택할 수 있는 여러 가지 방법이 있을 수 있습니다. 이들 중 일부는 다음과 같습니다.
- 하드 코딩된 오류 메시지를 사용자에게 제공합니다.
- 예상되는 오류 메시지를 일부 변수에 저장하고 해당 변수를 표시합니다.
- 예외 처리하기.
일부 하드 코딩된 오류 메시지를 제공하는 첫 번째 방법은 매우 쉽고 간단합니다. 코드에 오류가 있을 가능성이 있을 때마다 오류 메시지를 표시하고 코드를 종료합니다.
예를 들어 잘못된 로그인 또는 암호 입력의 경우 다음과 같은 메시지를 표시할 수 있습니다.
cout << "You have entered an incorrect username or password" << endl;
cout << "Try again!" << endl;
두 번째 방법은 가능한 오류 메시지에 대한 일부 문자열을 만들고 필요할 때마다 해당 변수를 표시하는 것입니다.
const string INVALID_LOGIN_ERROR_MESSAGE = "Invalid Username or Password";
// later in the code
cout << INVALID_LOGIN_ERROR_MESSAGE << endl;
이러한 유형의 문자열은 ErrorMessages.h
와 같은 별도의 헤더 파일에서 선언하고 해당 헤더 파일을 기본 파일에 포함할 수 있습니다. 이러한 문자열 리터럴의 장점은 코드 중복을 방지하는 것입니다.
오류 메시지를 변경하고 싶을 때마다 한 곳(즉, 선언 부분)에서 변경해야 합니다.
C++의 예외 처리
일부 런타임 오류는 전문적인 프로그래밍 기술로도 예방할 수 없습니다. 이는 예외이며 이러한 유형의 오류에 대해 예외 처리를 수행합니다.
예를 들어 사용할 수 없는 시스템에서 일부 메모리에 액세스하려고 시도하거나 API 사용자가 함수에 잘못된 인수를 전달할 수 있습니다. 이러한 유형의 오류는 예외 처리를 사용하여 처리됩니다.
프로그램에서 예외 처리를 사용하려면 오류가 예상되는 코드 블록을 try
블록으로 묶습니다. 따라서 예외가 있을 때마다 프로그램을 종료하기 전에 의미 있는 오류 메시지를 표시하는 관련 catch
블록으로 제어가 자동으로 이동합니다.
아래 예를 고려하십시오.
#include <iostream>
using namespace std;
int main() {
int n1 = 2, n2 = 0;
try {
if (n2 != 0)
cout << "Division: " << n1 / n2 << endl;
else
throw 0;
} catch (int e) {
cout << "Divide by zero exception " << endl;
}
return 0;
}
위 코드의 출력은 다음과 같습니다.