<exception>中定義的exception類很簡單:
class exception{
public:
exception()noexcept{}
virtual ~exception()noexcept{}
virtual const char*what()const noexcept{
return "std::exception";
}
};
它是一個空基類,虛析構函數保證基類和派生類可以正常析構。what函數是虛函數,派生類可以根據需要自定義異常的描述。
bad_exception類與exception類的定義相似,
class bad_exception:public exception{
public:
bad_exception()noexcept{}
virtual ~bad_exception()noexcept{}
virtual const char*what()const noexcept{
return "std::bad_exception";
}
};
只是將exception類作爲父類,和修改了what函數返回的內容。