当前位置: 首页 > news >正文

try-throw-catch异常捕获流程

异常处理是一种警报和恢复机制,它允许程序在遇到无法在局部处理的错误(如文件不存在、内存不足、除零错误)时,跳出当前执行流,将错误信息“抛”给上层调用者处理,而不是让程序崩溃。

try 代码块用于包裹可能抛出异常的代码。throw 用于在检测到错误时抛出一个异常对象。catch 块紧随 try 块之后,用于捕获并处理特定类型的异常。

throw 可以抛出任何类型的对象(基本类型、字符串、类对象),但最好是抛出派生自 std::exception 的类对象,因为它们有统一的 what() 成员函数来获取错误描述。当 throw 语句执行时,程序控制流会立即离开当前函数,并沿着调用链向上回溯,这个过程称为栈展开

int divide(int a, int b) { if (b == 0) { throw std::runtime_error("Division by zero!"); // 抛出异常 } return a / b; } int main() { try { // 尝试执行 int result = divide(10, 0); std::cout << "Result: " << result << std::endl; } catch (const std::runtime_error& e) { // 捕获异常 std::cerr << "Error caught: " << e.what() << std::endl; // 输出 "Error caught: Division by zero!" } ... }

异常类体系都继承自 std::exception,具体分类:

异常类头文件典型抛出场景
std::logic_error<stdexcept>程序逻辑错误,如无效参数
std::runtime_error<stdexcept>运行时才能检测的错误,如文件打开失败
std::bad_alloc<new>new 操作符内存分配失败
std::bad_cast<typeinfo>dynamic_cast 对引用类型转换失败
http://www.jsqmd.com/news/1125356/

相关文章:

  • Redis Stream 消息队列总结
  • CTF ECC基础离散对数爆破 解题Writeup
  • 调试排查工具介绍(gdb、strace、Valgrind等)
  • JBoss 6.1.0.Final 弱口令加固实战:3步修改 jmx-console-users.properties 默认密码
  • 基于51/STM32单片机智能电饭煲 电饭锅设计 温度加热预约13(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码
  • Java 转大模型开发:后端程序员的升级路线,把工具链跑成稳定流程
  • Agent 云原生运行时:智能体也需要健康检查
  • CenterNet实战:从零搭建到模型测试的完整环境配置指南
  • GPT 输出不符合预期?从结构化提问到多轮优化的实用方法
  • CSS Cascade Layer:样式优先级要靠架构,不靠赌命名
  • Java毕设项目:中小型乡村民宿山庄综合业务管理系统的设计与实现 基于 Java 的民宿客户信息与消费记录管理系统 (源码+文档,讲解、调试运行,定制等)
  • AT 指令学习手册:从对话逻辑到实战排错
  • Avalonia NativeControlHost
  • 做过亲子游定制之后,才知道本地靠谱旅行社不能忽略
  • 基于51/STM32单片机温湿度检测控制系统 DHT11环境监测大棚报警器12(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_
  • 原神120帧解锁终极指南:免费提升游戏流畅度的完整教程
  • 104. GaN功率模块集成驱动与高频磁性元件设计
  • 不同规模企业如何选择RFID资产管理系统?一份务实的选型指南
  • 【大白话说Java面试题 第153题】【06_Spring篇】第13题:Spring 中 Bean 是线程安全的吗?
  • 预训练让时序模型零样本胜出
  • 大学生AI学习工具选择指南:ChatGPT、DeepSeek与Gemini实战适配
  • 外卖做了400单,到手不到1000块:一笔账背后的行业困局
  • Java毕业设计-基于 SpringBoot 的 Cosplay 交流论坛的设计与实现 前后端分离的二次元 Cosplay 分享社区平台(源码+LW+部署文档+全bao+远程调试+代码讲解等)
  • 基于STM32单片机车位引导 智能停车场计费系统 刷卡识别 WIFI成品12(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_
  • Skills 编写规范与经验指南
  • 服务器安全(Windows Server+Linux)
  • 电容式触摸按键 PCB 设计 10 要点:从 PAD 形状到走线间距的实战避坑
  • 终极指南:5分钟快速导出QQ空间全部历史说说的完整解决方案
  • Linux groupdel命令详解|用户组删除、主组报错解决、强制删除实战教程
  • PyTorch 2.12 LSTM 时间序列预测实战:NASA IGBT 退化数据 MSE 降至 0.004