C++ expection异常类、捕获所有异常(C++ primer,P639)

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 
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)
	{
		...
	}

你可能感兴趣的:(C/C++)