首页 > 编程语言 >C++:自定义异常

C++:自定义异常

时间:2024-05-16 09:30:45浏览次数:14  
标签:what const 自定义 MyException C++ 异常 throw

#include <iostream>
#include <stdexcept>

// 自定义异常类
class MyException : public std::exception {
public:
    // 重写 what() 函数以提供异常的描述,const表示函数不会改变类的成员变量,noexcept表示不会抛出异常
    const char* what() const noexcept override {
        return "My custom exception occurred";
    }
};

int main() {
    try {
        // 抛出自定义异常
        throw MyException();
    } catch (const MyException& e) {
        // 捕获并处理自定义异常
        std::cerr << "Caught MyException: " << e.what() << std::endl;
    } catch (const std::exception& e) {
        // 捕获其他类型的异常
        std::cerr << "Caught an exception: " << e.what() << std::endl;
    }

    return 0;
}

 

这样对于不同的自定义异常都只需throw同一个种异常类型,根据what再进行区分

标签:what,const,自定义,MyException,C++,异常,throw
From: https://www.cnblogs.com/toriyung/p/18195304

相关文章

  • 异常处理与推导式
    异常处理【一】什么是异常异常就是程序在运行当中遇到的报错为了程序的健壮性要捕获异常后进行处理断掉程序 / 重启程序 / 进入指定处理流程【二】捕获异常if捕获不到异常,要用python自带的捕获语句try:...except:...【三】异常捕获详细对代码熟悉,能确保代码报错是哪......
  • 使用joinjs绘制流程图(九)-实战-绘制流程图+节点路径自定义升级版
    效果图自定义路径设计本示例假设当前节点和其他节点不在同一纵坐标的情况下代码<template><divclass="app"><divref="myholder"id="paper"></div></div></template><script>import*asjointfrom'@joint/......
  • OpenPCDet训练自定义数据
    官网也提供了步骤,这里详细介绍下训练自己数据的过程以及中间遇到的一些问题。训练模型这里采用PointRCNN,具体的介绍参考:https://www.cnblogs.com/xiaxuexiaoab/p/18033887一、准备数据集数据集这一块我们需要准备好原始点云数据、物体目标标注文件、以及训练和验证对应的索引号,......
  • C++ 对象池
    对象池概念对象池模式(ObjectPoolPattern),是创建型设计模式的一种,将对象预先创建并初始化后放入对象池中,对象提供者就能利用已有的对象来处理请求,减少频繁创建对象所占用的内存空间和初始化时间。对象池的用户可以从池子中取得对象,对其进行操作处理,并在不需要时归还给池子而非......
  • C++基础篇
    输入输出流iostream向流写入数据<<运算符<<运算符接受两个运算对象,此运算符将给定的值写到给定的ostream对象中:左侧:运算对象为ostream对象,如cout、cerr、clog右侧:运算对象是要打印的值输出结果:写入给定值的那个ostream对象,即此运算符返回其左侧的运算对象。表达式等价于:(std......
  • msvc 获取c++类内存布局 /d1 reportAllClassLayout
     visualstudio配置获取所有类内存布局/d1reportAllClassLayout或者指定类/d1reportSingleClassLayoutXXXclass  编译时输出:     ps:https://www.openrce.org/articles/full_view/23   【原文地址】https://blog.csdn.net/qq_29542611/article......
  • 截取Spring框架自动抛出异常
    在Spring框架中,特别是使用SpringMVC或SpringBoot时,可以采用以下几种方式来截取和处理框架自动抛出的异常,使其更加符合应用的需求和提升用户体验:1.全局异常处理器- @ControllerAdvice使用@ControllerAdvice注解定义一个全局异常处理类,可以捕获整个应用程序中控制器抛出的异......
  • mit6.828笔记 - lab3 Part A:用户进程和异常处理
    简单回顾在开始lab3的学习之前,我们先简单回顾下到目前为止,我们的内核能做了什么:lab1中,我们学习了PC启动的过程,看到BIOS将我们编写的bootloader载入内存,然后通过bootloader将内核载入内存。同时,使用了一个写死的临时页表(entry_pgdir)完成了简单的地址映射;我们的内核最后执......
  • mit6.828笔记 - lab3 Part B:页面故障、断点异常和系统调用
    PartB页面故障、断点异常和系统调用虽然说,我们故事的主线是让JOS能够加载、并运行user/hello.c编译出来的镜像文件。虽然说,经过PartA最后几节,我们初步实现了异常处理的基础设施。但是对于操作系统来说,还远远不够,比如说那个trap_dispatch还没完成。所以在回到故事主线之......
  • 全局异常处理和jwt介绍与使用
    全局异常处理和jwt介绍与使用1.全局异常处理#APIView的dispatch的时候--》三大认证,视图类的方法中--》出了异常--》被异常捕获--》都会执行一个函数:#只要出了异常,都会执行dispatch中的这句,这个函数response=self.handle_exception(exc)#handle_exception源码分析d......