news 2026/6/9 22:40:40

C++之函数异常与标准异常类

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
C++之函数异常与标准异常类

函数异常

  • 当一个函数声明中不带任何异常描述时,它可以抛出任何异常
  • C++允许限制函数能够抛出的异常类型,限制方法时在函数声明后面添加一个throw参数表,在其中指定函数可以抛出的异常类型
intfun(int,char)throw(int,char);
  • 函数fun被限定只允许抛出int和char类型的异常,当fun函数抛出其他类型的异常时,程序将被异常终止
  • 如果函数不允许抛出任何异常,只需要指定throw限制表为不包括任何类型的空表
intfun(int,char)throw();
#include<iostream>#include<cstdio>#include<csetjmp>usingnamespacestd;classFileError{};classMemoryError{};voidfunc(void)throw(FileError,MemoryError){throwFileError();//throw MemoryError();}intmain(void){try{func();}catch(FileError&ex){cout<<"file error"<<endl;return-1;}catch(MemoryError&ex){cout<<"memory error"<<endl;return-1;}return0;}

标准异常类

  • C++库中专门设计了exception类表示异常

#include<iostream>#include<cstdio>#include<csetjmp>usingnamespacestd;classFileError:publicexception{public:virtualconstchar*what()constthrow(){cout<<"handle file error"<<endl;return"FileError";}};classMemoryError:publicexception{public:virtualconstchar*what()constthrow(){cout<<"handle memory error"<<endl;return"MemoryError";}};voidfunc(void)throw(FileError,MemoryError){//throw FileError();throwMemoryError();}intmain(void){try{func();}catch(exception&ex){cout<<ex.what()<<endl;return-1;}return0;}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 14:08:54

Linux文件目录权限

一 权限基本表示1. 权限位结构-rwxrwxrwx ↑ ↑↑↑ ↑↑↑ ↑↑↑ │ │││ │││ │││ │ │││ │││ │└─ 其他用户(others)执行权限 │ │││ │││ └── 其他用户写权限 │ │││ ││└─── 其他用户读权限 │ │││ ││ │ │││ │└── 所属组(gr…

作者头像 李华
网站建设 2026/6/10 14:12:09

CSDN大模型学习指南:小白程序员必备的8大原则,助你轻松掌握AI产品开发精髓!(收藏版)

本文介绍了AI产品经理的八大核心原则&#xff0c;涵盖STP市场细分、目标市场定位、精益产品开发、任务导向指标、构建持续上下文壁垒、量化评测体系、AI错误处理机制以及Token成本控制等关键要素。旨在帮助小白和程序员快速了解AI产品开发流程&#xff0c;掌握AI产品市场匹配、…

作者头像 李华
网站建设 2026/6/10 14:52:04

多号发圈终于不用来回切换了,3步搞定!

手里管着3个、5个甚至十几个微信号&#xff0c;每天要同步发产品资讯、活动预告、客户案例&#xff0c;光是来回切换账号、重复复制粘贴内容&#xff0c;就要花掉1-2个小时&#xff1b;节假日赶流量高峰&#xff0c;提前编辑好几十条文案&#xff0c;熬夜守到零点手动发送&…

作者头像 李华