這裡以設定學生年齡不能超過範圍為例來說明為何需要丟擲異常:
//這裡是自定義異常類ageexception,為下面的student類中的調用作鋪墊
//jdk定義的異常類無法準確描述特定異常資訊
//1、定義乙個類,繼承已有異常類(直接或間接繼承runtimeexception,則為執行時異常;否則為檢查時異常(exception))
public
class
ageexception
extends
runtimeexception
}
下面是student類的**:
public
class
student
public
void
setage
(int age)
else
}}
如下是上面**中throw方法丟擲異常的結果:明顯可以看出其結果對於異常資訊的描述是十分全面和具體的,從此結果裡我們可以直接找到異常所在位置和異常所屬型別1、throw丟擲的是異常物件;throws丟擲的是類,如果有多個類則使用逗號間隔//throw丟擲的是異常物件
throw
newageexception
("age值範圍1~150"
);
//throws丟擲的是類,如果有多個類則使用逗號間隔(throws用於宣告方法可能丟擲的異常)
public
void
setage
(int age)
throws ageexception
else
2、hrow用於**塊或方法體;throws只能用於方法引數列表後邊,不能用於**塊(否則會報錯,無需使用**體現)3、如果throw丟擲的異常是執行時異常,則可以不使用throws;否則必須顯示處理:try-catch或者throwspublic
class
test
catch
(printerexception e)
return;}
system.out.
println
(age);}
public
static
void
main
(string[
] args)
catch
(printerexception e)
}}
詳述 與equals的區別
1 在基本資料型別中比較值是否相等,在引用資料型別中比較位址是否相等。int a 12 int b 12 int c 3 system.out.println a b a與b值相同,結果為true system.out.println a c a與c值不同,結果為false string name1...
XmlNode與XmlElement的區別總結
今天在做c 操作xml文件的過程中,發現了兩個類 xmlnode和xmlelement。這兩個類的功能極其類似 因為我們一般都是在對element節點進行操作 上網蒐羅了半天,現在總結如下 1 通過繼承關係xmlelement繼承自xmllinkednode又繼承自xmlnode類,由此可知xmle...
DeleteDC 與 ReleaseDC的區別
deletedc 與 createdc 對應 releasedc 與 getdc 對應 借過來的 getdc 就要放還回去 releasedc 自已建立的 createdc 要自已刪除 deletedc 總之,要 用過之後,不留痕跡 還有以下的特殊情況,如cclientdc dc this 或cpa...