python类型转换异常捕捉_Java中的异常
異常的概念:
異常(exception也稱例外)就是在程序運行過程中所發(fā)生的不正常的事情,
他會終止程序的運行。
1.所需的文件找不著
2.網(wǎng)絡(luò)連接不通或者中斷
3.算數(shù)運算符的錯誤參數(shù)
4.數(shù)組下標越界
5.裝載一個不存在的類或者null對象操作
6.類型轉(zhuǎn)換異常...
當java程序出現(xiàn)以上異常的時候就會在所處方法中產(chǎn)生一個異常的對象
這個異常的對象包括異常的類型,異常出現(xiàn)時程序的運行狀態(tài)以及該異常的詳細我描述
在java程序中所有異常和error的父類是Throwable直接繼承Object
error是程序本身無法恢復的嚴重錯誤
exception是程序中可以處理的異常
1.運行時異常(有可能產(chǎn)生也有可能不產(chǎn)生)
2.Check的異常(不處理編譯無法通過,也叫編譯時異常)
異常的處理方式之捕捉異常:
1.try -catch- finally的使用
1-try-catch組合
1--正常情況:try 及以后的代碼,不執(zhí)行catch
2--異常情況:出現(xiàn)類型和捕獲類型相匹配
catch(exception e){//
e.printstackTrance();
}
再捕捉到異常的時候由java虛擬機創(chuàng)建對象,體現(xiàn)了多態(tài),父類引用指向子類對象
Exception e = new ArithmeticException();然后繼續(xù)執(zhí)行以后程序,程序不會中斷
3--異常不匹配情況:異常exception e不匹配,程序中斷,后面程序就不在運行。
2-try-finally組合;
1--正常情況:程序正常運行,執(zhí)行finally代碼
2--異常情況:在執(zhí)行完畢f(xié)inally代碼之后程序報錯,程序中斷
3--特殊情況不執(zhí)行finally:system.exit(0);
3-try-catch-finally
1--正常情況:執(zhí)行try-finally
2--異常情況:類型相匹配執(zhí)行try-catch-finally 按順序執(zhí)行
3--異常情況:類型不相匹配,執(zhí)行try-finally
如果catch中存在return語句則先執(zhí)行完finally語句后再執(zhí)行return語句(結(jié)束方法)
異常的處理方式之聲明異常:(throws)
方法名的后面,用于聲明該方法可能會產(chǎn)生一個異常,如果方法聲明的
是一個Exception異常或者是checkedException異常,要求方法的調(diào)用出必須做處理
1.繼續(xù)使用throws向上聲明(方法的調(diào)用處)
2.使用try-catch-finally進行處理
如果方法聲明但是runtimeException的異常,那么方法的調(diào)用可不處理
繼承關(guān)系中的聲明異常:
1.父類的方法聲明了Exception類型的異常,子類再重寫方法的時候,可以聲明
也可以不聲明,但是如果子類重寫之后的方法使用super關(guān)鍵字調(diào)用父類的方法,
那么必須要求對異常進行處理。
2.如果父類方法沒有異常,那么子類的方法如果一定要有Exception異常或者是checkedException異常
那么子類必須自己進行try-catch-finally解決或者給父類聲明異常。
3.如果子類在重寫父類方法是產(chǎn)生的是runtimeException那么也可以不用處理
throw拋出異常對象寫在方法里
在捕獲一個異常之前必須有一段代碼先生成異常對象并把它拋出,這個過程我們
可以手工做也可以由JRE來實現(xiàn),他們調(diào)用的都是Throw子句
throws與throw的區(qū)別
1.throws用于聲明方法可能會產(chǎn)生的類型異常,throw手動拋出一個異常對象!!
2.位置不相同,throws寫在方法名后面,throw用于寫在方法里。
常見的異常和解決方法(加入判斷)
1.運行時異常runtimeException
1-算術(shù)異常:ArithmeticException(除數(shù)不為0)
2-空指針異常:NullPointerException(沒有創(chuàng)建對象就調(diào)用了對象的屬性或方法String str=nul;)
3-類型轉(zhuǎn)換異常;ClassCastException(向下類型轉(zhuǎn)換Animal dog = new Dog Cat cat = (cat)dog
用instanceof判斷是否屬于一個類型返回boolean)
4-數(shù)組下標越界異常:ArraysIndexOutOfBoundsException(判斷是否<arr.length
否則輸出數(shù)組下標超出邊界)
5-期望的數(shù)據(jù)類型和實際輸入的類型不匹配:InputMismatchException!!!(判斷輸入的是否是整數(shù)
的時候用input.hasNextInt(),判斷你輸入的時候是否是整數(shù))
2.檢查時異常CheckedException(必須做處理n多異常的總稱)
1-SQLException(throws向上聲明或者使用try-catch-finally)
2-IOException(throws向上聲明或者使用try-catch-finally)
3-ParseException(throws向上聲明或者使用try-catch-finally)
自定義異常:
為什么要定義自定義異常?
在程序中,可能會遇到任何標準異常類都無法描述清楚的問題,這種情況下創(chuàng)建自己的
異常類
自定義異常的步驟:!!!
1.繼承Exception或者RuntimeException
2.定義構(gòu)造方法
3.使用異常
總結(jié)
以上是生活随笔為你收集整理的python类型转换异常捕捉_Java中的异常的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql 事件计划区别_MySQL 计
- 下一篇: mysql两条记录合成一条数据_踩坑记录