c++ 定義新的異常

#include <iostream>
#include <exception>
using namespace std;
 
struct MyException : public exception
{
  const char * what () const throw ()
  {
    return "C++ Exception";
  }
};
 
int main()
{
  try
  {
    throw MyException();
  }
  catch(MyException& e)
  {
    std::cout << "MyException caught" << std::endl;
    std::cout << e.what() << std::endl;
  }
  catch(std::exception& e)
  {
    //其餘的錯誤
  }
}ios

=================函數

const throw() 不是函數,這個東西叫異常規格說明,表示 what 函數能夠拋出異常的類型,類型說明放到 () 裏,這裏面沒有類型,就是聲明這個函數不拋出異常,一般函數不寫後面的就表示函數能夠拋出任何類型的異常。spa

異常規格說明接口

一、異常規格說明的目的是爲了讓函數使用者知道該函數可能拋出的異常有哪些。 能夠在函數的聲明中列出這個函數可能拋擲的全部異常類型。例如:io

void fun() throw(A,B,C,D);

二、若無異常接口聲明,則此函數能夠拋擲任何類型的異常。stream

三、不拋擲任何類型異常的函數聲明以下:exception

相關文章
相關標籤/搜索