C++ 예외 처리를 사용하면 예외를 발생시키고 try-catch 블록을 사용하여 이를 잡아 런타임 오류를 처리하는 사용자 정의 오류 처리 루틴을 생성할 수 있습니다. 1. 예외 클래스에서 파생된 사용자 정의 예외 클래스를 생성하고 what() 메서드를 재정의합니다. 2. 예외를 발생시키려면 throw 키워드를 사용합니다. 3. 예외를 포착하고 가능한 예외 유형을 지정합니다. 처리.
C++ 예외 처리: 사용자 정의 오류 처리 루틴 지원
C++에서 예외 처리는 런타임 오류를 처리하기 위한 강력한 메커니즘입니다. 이를 통해 사용자 정의 오류 처리 루틴을 생성하여 우아하고 효율적인 방식으로 오류 조건을 처리할 수 있습니다.
Exception 클래스
C++에서 예외는 Exception
클래스 또는 파생 클래스로 표현됩니다. 사용자 정의 예외를 발생시키려면 고유한 파생 클래스를 만들고 what()
메서드를 재정의하세요. 이 메서드는 오류를 설명하는 문자열을 반환합니다. exception
类或其派生类表示。要抛出一个自定义异常,请创建您自己的派生类并覆盖 what()
方法。此方法返回一个描述错误的字符串。
class MyCustomException : public std::exception { public: const char* what() const noexcept override { return "This is my custom exception."; } };
抛出异常
使用 throw
关键字抛出异常。它接受一个异常对象作为参数:
throw MyCustomException();
捕捉异常
使用 try-catch
块捕捉异常。每个 catch
子句都指定一个可以处理的异常类型。如果发生匹配类型的异常,将执行该子句中的代码:
try { // 可能抛出异常的代码 } catch (MyCustomException& e) { // 处理 MyCustomException 异常 } catch (std::exception& e) { // 处理所有其他类型的异常 }
实战案例
让我们考虑一个打开文件并对其进行读取的函数。如果无法打开文件,则函数应抛出我们的自定义异常:
#include <fstream> #include <iostream> using namespace std; // 自定义异常类 class FileOpenException : public std::exception { public: const char* what() const noexcept override { return "Could not open the file."; } }; // 打开文件并读取其内容的函数 string read_file(const string& filename) { ifstream file(filename); if (!file.is_open()) { throw FileOpenException(); } string contents; string line; while (getline(file, line)) { contents += line + '\n'; } file.close(); return contents; } int main() { try { string contents = read_file("file.txt"); cout << contents << endl; } catch (FileOpenException& e) { cout << "Error: " << e.what() << endl; } catch (std::exception& e) { cout << "An unexpected error occurred." << endl; } return 0; }
在上面的示例中,read_file()
函数抛出 FileOpenException
异常,当文件无法打开时启动。在 main()
函数中,我们使用 try-catch
rrreee
throw
키워드를 사용하세요. 예외 객체를 매개변수로 받아들입니다: 🎜rrreee🎜🎜Catch 예외🎜🎜🎜 try-catch
블록을 사용하여 예외를 포착합니다. 각 catch
절은 처리할 수 있는 예외 유형을 지정합니다. 일치하는 유형의 예외가 발생하면 이 절의 코드가 실행됩니다: 🎜rrreee🎜🎜 실제 예 🎜🎜🎜 파일을 열고 읽는 함수를 생각해 보겠습니다. 파일을 열 수 없는 경우 함수는 사용자 정의 예외를 발생시켜야 합니다. 🎜rrreee🎜 위의 예에서 read_file()
함수는 파일이 시작될 때 FileOpenException
예외를 발생시킵니다. 열 수 없을 때. main()
함수에서는 try-catch
블록을 사용하여 예외를 포착하고 이에 따라 처리합니다. 🎜위 내용은 C++ 예외 처리는 사용자 정의 오류 처리 루틴을 어떻게 지원합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!