自定義異常類

2021-07-01 20:04:07 字數 1080 閱讀 8948

除了程式裡已經定義好的標準異常類以外,還可以自定義自己的異常類,但通常也和其他標準異常類一樣派生於exception類例如對於乙個********類,如果規定當且僅當任意兩邊長度之和大於第三邊,才能試圖建立乙個三角形或者改變乙個邊長時也不要改變此性質。如果改變了丟擲乙個異常;同時每條邊不能是負數,否則也丟擲異常。

在這裡定義乙個tirexc類(派生於標準異常類logic_error),當不滿足三邊關係時丟擲;再定義乙個triexc(派生於logic_error),當邊長小於0即丟擲異常。很明顯這裡涉及了多重異常捕獲:乙個try塊後面可以跟著多個catch塊:

class tirexc:public logic_error//派生類構造沒有顯式呼叫基類構造,則呼叫基類無參構造,當基類構造無無參構造時,只能顯式

double gets1()

double gets2()

double gets3()

};//定義三角形三邊關係異常類

class tirexc;

class triexc:public logic_error

double gets()};//定義邊為負時異常

class ********:public graph

public:

********()

********(double s1,double s2,double s3)

********(double s1,double s2,double s3,string s,bool f):graph(s,f)

double gets1()

double gets2()

double gets3()

double getarea()

double getlon()

void set1(double a1)//先判斷是否都是正,在判斷三邊

void set2(double a2)

void set3(double a3)};

主函式呼叫:

int main(){

try{

******** a;

cout<<"the area:"<

自定義異常類

自定義並捕獲 一 第一種定義方式,繼承exception類 public class myfirstexception extends exception public myfirstexception string msg public myfirstexception string msg,th...

自定義異常類

當我們在輸入成績,輸入工資,取款的時候,往往都有乙個範圍,而這個範圍不是jvm能夠識別的,因此在輸入的時候就容易出錯,因此在這些時候jdk中的異常無法滿足我們的需求,我們只能自己定義異常類。可以通過繼承exception來派生自己的子異常類。而exception中常用的構造方法 exception ...

自定義異常類

一 第一種定義方式,繼承exception類 public class myfirstexception extends exception public myfirstexception string msg public myfirstexception string msg,throwable...