#include <iostream>
#include <exception>
// 定义一个自定义异常类
class MyException : public std::exception {
public:
const char* what() const noexcept override {
return "My custom exception occurred";
}
};
void mayThrow(bool throwException) {
if (throwException) {
// 抛出一个自定义异常
throw MyException();
} else {
std::cout << "No exception thrown" << std::endl;
}
}
int main() {
try {
mayThrow(true); // 这里会抛出异常
} catch (const MyException& e) {
std::cerr << "Caught exception: " << e.what() << '\n';
}
try {
mayThrow(false); // 这里不会抛出异常
} catch (const MyException& e) {
std::cerr << "Caught exception: " << e.what() << '\n';
}
return 0;
}
std::exception
的自定义异常类 MyException
,并重写了 what()
方法来返回异常信息。mayThrow
中,如果参数 throwException
为 true
,则抛出一个 MyException
异常。main
函数中,使用 try-catch
块来捕获可能抛出的异常。如果异常被捕获,则输出异常信息;否则,程序继续执行。mayThrow(false)
被调用时,不会抛出异常,因此不会进入 catch
块。通过这个例子,你可以看到如何定义、抛出和捕获自定义异常。
上一篇:c++ mqtt
下一篇:c++ include
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站