Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

c++ exception

作者:放电的牛   发布日期:2025-05-28   浏览:84

#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;
}

解释说明:

  1. 自定义异常类:我们定义了一个继承自 std::exception 的自定义异常类 MyException,并重写了 what() 方法来返回异常信息。
  2. 抛出异常:在函数 mayThrow 中,如果参数 throwExceptiontrue,则抛出一个 MyException 异常。
  3. 捕获异常:在 main 函数中,使用 try-catch 块来捕获可能抛出的异常。如果异常被捕获,则输出异常信息;否则,程序继续执行。
  4. 无异常情况:当 mayThrow(false) 被调用时,不会抛出异常,因此不会进入 catch 块。

通过这个例子,你可以看到如何定义、抛出和捕获自定义异常。

上一篇:c++ mqtt

下一篇:c++ include

大家都在看

c++闭包

c++单引号和双引号的区别

c++ 注释

c++如何判断素数

c++freopen怎么用

c++ 获取系统时间

c++进制转换函数

c++ tcp

c++ gcd函数

c++ cli

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站