C++ Primer笔记 C++ 异常处理
来源:互联网 发布:java数据库编程 编辑:程序博客网 时间:2024/06/06 18:47
C++ Primer 中文版第四版
page188
每一个标准库异常类都定义了一个名为what的成员函数,不需要参数,参会C风格字符串的错误信息,如果发送异常则先从抛出
异常的函数中找catch块,如果没有则从调用它的函数中找,层层往上,直到找到为止,如果没有则跳转到名为terminate的标准
库函数非正常退出。
eg. 捕捉bitset转换为ulong时超出ulong长度的异常
#include <iostream>
#include <bitset>
using namespace std;
int main()
{
bitset<100> bs;
for(size_t i = 0; i != bs.size(); ++ i)
{
bs.set(i);
}
unsigned long ul = 0;
try
{
ul = bs.to_ulong();
cout<<ul<<endl;
}
catch(overflow_error err)
{
cout<<err.what()<<endl;
}
cout<<endl;
return 0;
}
运行结果:
bitset<N> conversion overflow
------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------
①exception头文件定义了最常见的异常类,它的类名是exception。这个类只通知异常的产生,但不会提供更多的信息。
②stdexcept头文件定义了几种常见的异常类,如下,详见page189
exception
runtime_error
range_error
overflow_error
underflow_error
logic_error
domain_error
invalid_error
length_error
out_of_range
③new头文件定义了bad_alloc异常类型,提供因无法分配内存而由new抛出的异常。
④type_info头文件定义了bad_cast异常类型。
- 《C++Primer》读书笔记--异常处理
- 异常处理 Exception(C++Primer-11)
- 【c++】简单异常处理笔记
- c++primer笔记--2.5处理类型
- c++primer学习笔记-----2.5处理类型
- try 块和异常处理 (c++primer)
- c++primer之try语句块和异常处理
- C++Primer:Break、Continue、Goto、Try/异常处理
- C++PRIMER学习笔记
- c++primer 4 笔记
- c++Primer笔记
- c++Primer笔记
- C++primer 笔记
- c++primer学习笔记
- C++primer 笔记
- C++Primer 笔记 -- 基础
- c++primer学习笔记
- C++primer学习笔记
- Android Fragement学习笔记(三)----PreferenceFragment的使用
- 孙鑫 第二十课HOOK
- C++ vector用法
- C++vector 迭代器iterator
- C++ bitset
- C++ Primer笔记 C++ 异常处理
- C++ Primer笔记 预处理器进行调试
- C++ Primer笔记 函数指针
- Linux进程控制及守护进程
- C++ Primer笔记 数组做形参
- 在Unity3d中创建滑动GUI
- C++ Primer笔记 顺序容器①
- C++ Primer笔记 map
- C++ Primer笔记 map 之 insert函数