C++ 异常小记
2024-10-18 13:19:12
catch必定使用拷贝构造函数
如下代码编译不通过,因为拷贝构造被标记delete
#include <stdexcept>
#include <cstdlib>
#include <iostream>
using namespace std;
class sonExc : public exception {
public:
sonExc ( const char* const msg ) : exception ( msg ) {
}
sonExc ( const sonExc & e ) = delete;
};
int main()
{
try {
sonExc e { "Hello" };
throw e;
}
catch ( sonExc &e ) {
cout << "sonExc:" << e.what() << endl;
}
catch ( exception &e ) {
cout << "exception:" << e.what() << endl;
}
system ( "pause" );
}
throw 指针
依照优先匹配原则
可以匹配 基类指针、本类指针和void*,哪个在前面优先哪个
#include <stdexcept>
#include <cstdlib>
#include <iostream>
using namespace std;
class sonExc : public exception {
public:
sonExc ( const char* const msg ) : exception ( msg ) {
}
sonExc ( const sonExc & e ) = delete;
};
int main()
{
try {
sonExc *e = new sonExc{ "Hello" };
throw e;
}
catch ( int e ) {
cout << "int *" << ( e ) << endl;
}
catch ( void* e ) {
cout << "void *" << reinterpret_cast<int> ( e ) << endl;
}
catch ( sonExc *e ) {
cout << "sonExc:" << e->what() << endl;
}
catch ( exception *e ) {
cout << "exception:" << e->what() << endl;
}
system ( "pause" );
}
最新文章
- python编码规范
- mssql
- ggplot2.multiplot:将多个图形使用GGPLOT2在同一页上
- CCF NOI系列活动
- SpringMvc多文件上传简单实现
- Nginx在嵌入式系统中的应用
- 用PHP写的一个简单的分页类 1.0版
- 去掉app右侧滑动时出现的滚动条
- 无显示仍然发挥树莓派——VNCserver设定
- 批量去除office超链接
- Merge INTO的用法参考
- zw版足彩大数据&报价
- 简单GC具体操作参数查看
- Android 获取版本号名称工具类
- 【ZJOI2016】线段树
- [leetcode]311. Sparse Matrix Multiplication 稀疏矩阵相乘
- .21-浅析webpack源码之事件流this-compilation
- 推荐十款java开源中文分词组件
- PMS—团队展示
- 【hive】关于用户留存率的计算
热门文章
- Maven错误信息:Missing artifact jdk.tools:jdk.tools:jar:1.6
- java map遍历、排序,根据value获取key
- Redis 基础(一)
- redis笔记总结之redis安装
- python计算机基础-Day1
- spark source code 分析之ApplicationMaster overview(yarn deploy client mode)
- python 练完这些,你的函数编程就ok了
- 【前端单元测试入门05】react的单元测试之jest
- PHP之取得当前时间函数方法
- 生成式模型之 GAN