自定義異常
在程序中提完,可能會遇到任何標(biāo)準(zhǔn)異常類都沒有充分的描述清楚的問題形纺,這種情況下可以創(chuàng)建自己的異常類。
從Exception類或者它的子類派生一個子類即可?徒欣。
習(xí)慣上逐样,定義的類應(yīng)該包含2個構(gòu)造器:一個是默認(rèn)的構(gòu)造器,另一個是帶有詳細(xì)信息的構(gòu)造器。
【示例1】自定義異常類
class? ? IllegalAgeException??????extends?? Exception {
????public?IllegalAgeException?? () {
??? }
????public?IllegalAgeException?? (String? ? msg) {
???????super(msg);
??? }
}
【示例2】自定義異常類的使用
class?Person {
????private?String name;
????private?int?age;
????public?void?setName(String name) {
???????this.name = name;
??? }
????public?void?setAge(int?age) {
???????if?(age < 0)
???????????throw?new?IllegalAgeException?? ("人的年齡不應(yīng)該為負(fù)數(shù)");
???????this.age = age;
??? }
????public?String toString() {
???????return?"name is " + name + " and age ? is " + age;
??? }
}
public?class?MyExceptionTest {
????public?static?void?main(String[] args) {
?????? Person p =?new?Person();
???????try?{
?????????? p.setName("Lincoln");
?????????? p.setAge(-1);
?????? }?catch?(IllegalAgeException??? e) {
?????????? e.printStackTrace();
?????????? System.exit(-1);
?????? }
?????? System.out.println(p);
??? }
}
使用異常機(jī)制的建議
1.要避免使用異常處理代替錯誤處理脂新,這樣會降低程序的清晰性秽澳,并且效率低下。
2.處理異常不可以代替簡單測試---?只在異常情況下使用異常機(jī)制
3.不要進(jìn)行小粒度的異常處理---應(yīng)該將整個任務(wù)包裝在一個Try語句塊中
4.?異常往往在高層處理(先了解戏羽!后面做項(xiàng)目會說担神!)
如何利用百度解決異常問題
正常學(xué)習(xí)和開發(fā)中,我們經(jīng)常會遇到各種異常始花。大家在遇到異常時(shí)妄讯,需要遵循下面三步來解決:
1. ?細(xì)心查看異常信息,確定異常種類和相關(guān)JAVA代碼行號
2. ?拷貝異常信息到百度酷宵,查看相關(guān)帖子亥贸,尋找解決思路
3.??前兩步無法搞定,再問同學(xué)或同事浇垦。
4.??前三步無法搞定炕置,請示領(lǐng)導(dǎo)。
很多同學(xué)碰到異常一下就慌了男韧,立刻開始請教別人搬救兵朴摊,殊不知這樣做有兩大壞處。
第一此虑、太不尊重別人甚纲,把別人當(dāng)苦力。
第二朦前、失去提高的機(jī)會介杆,自己解決一個異常,就意味這有能力解決一類異常韭寸。
解決一個異常能大大提高自身能力春哨。
「全棧Java筆記」是一部能幫大家從零到一成長為全棧Java工程師系列筆記。筆者江湖人稱 Mr. G恩伺,10年Java研發(fā)經(jīng)驗(yàn)赴背,曾在神州數(shù)碼、航天院某所研發(fā)中心從事軟件設(shè)計(jì)及研發(fā)工作莫其,從小白逐漸做到工程師癞尚、高級工程師、架構(gòu)師乱陡。精通Java平臺軟件開發(fā)浇揩,精通JAVAEE,熟悉各種流行開發(fā)框架憨颠。
筆記包含從淺入深的六大部分:
A-Java入門階段
B-數(shù)據(jù)庫從入門到精通
C-手刃移動前端和Web前端
D-J2EE從了解到實(shí)戰(zhàn)
E-Java高級框架精解
F-Linux和Hadoop?