expection类
头文件 < expection >
stdexcept类
(C++ primer plus,P632)
包含以下异常:
- domain_error
- invalid_argument
- length_error
- out_of_bounds
- range_error
- overflow_error
- underflow_error
bad_alloc类
包含以下异常:
- bac_alloc
当new动态内存分配失败时,会造成bad_alloc异常。
捕获所有异常
方法:定义一个myUnexpected异常,去替代unexpected异常
// #1 包含头文件
#include <expection>
using namespace std;
// #2 定义myUnexpected函数
void myUnexpected()
{
throw std::bad_exception();
}
int main(){
// #3 set...
set_unexpected(myUnexpected);
....
catch(...) {...}
// #4 在所有异常捕获之后加上bad_exception捕获
catch(bad_exception & ex)
{
...
}