news 2026/5/1 6:57:10

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/4/30 11:25:07

[无线通信基础-37]:有限信道,光纤和电缆是信道,无线信道中,电磁波是信道还是待传送的信号?信号坐“电磁波”这辆车,跑在“无线信道”这条路上。

✅ 简短答案&#xff1a;在无线通信中&#xff0c;电磁波是“承载信号的载体”&#xff0c;它本身不是信道&#xff0c;也不是原始信息信号&#xff0c;而是“已调信号”的物理表现形式。 而“无线信道”指的是电磁波从发射端传播到接收端所经过的空间环境**&#xff08;如空气…

作者头像 李华
网站建设 2026/4/27 6:32:09

打卡信奥刷题(2825)用C++实现信奥题 P4231 三步必杀

P4231 三步必杀 题目背景 &#xff08;三&#xff09;旧都 离开狭窄的洞穴&#xff0c;眼前豁然开朗。 天空飘着不寻常的雪花。 一反之前的幽闭&#xff0c;现在面对的&#xff0c;是繁华的街市&#xff0c;可以听见酒碗碰撞的声音。 这是由被人们厌恶的鬼族和其他妖怪们…

作者头像 李华
网站建设 2026/4/19 15:07:38

C++中std::string的弱点:你可能未曾注意到的缺点

C 中 std::string 的弱点&#xff1a;你可能未曾注意到的缺点 std::string 是 C 中使用最广泛的字符串类型&#xff0c;几乎所有现代 C 代码都会大量用到它。但它并不是完美的&#xff0c;在实际工程中&#xff0c;尤其在性能敏感、内存严格控制、多线程高并发、跨平台等场景下…

作者头像 李华