除了程式裡已經定義好的標準異常類以外,還可以自定義自己的異常類,但通常也和其他標準異常類一樣派生於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...