Java異常處理try?catch的基本用法
try catch介紹
我們編譯運行程序出錯的時候,編譯器就會拋出異常。拋出異常要比終止程序靈活許多,這是因為Java提供了一個“捕獲”異常的的處理器(處理器)對異常情況進(jìn)行處理。
如果沒有提供處理器機制,程序就會終止,并在控制臺上打印一條信息,給出異常的類型.L
比如:使用了NULL引用或者是數(shù)組越界等。
異常有兩種類型:未檢查異常和已檢查異常對于已檢查異常,處理器器將會檢查是否提供了處理器。
然而有許多的異常,如:訪問null引用,都屬于未檢查異常。編譯器不會查看是否為這些錯誤提供了處理器。畢竟,應(yīng)該用嚴(yán)謹(jǐn)?shù)膽B(tài)度來對待寫代碼,依次避免這些錯誤的發(fā)生,而不是將精力花在編寫異常處理器上。
?廢話少說,show coder:?
?/ * try catch:自己處理異常
? * try {
? *可能出現(xiàn)異常的代碼
? *} catch(異常類名A e){
? *如果出現(xiàn)了異常類A類型的異常,那么執(zhí)行該代碼
? *} ...(catch可以有多個)
? * finally {
? *最終肯定必須要執(zhí)行的代碼(例如釋放資源的代碼)
? *}
? *代碼執(zhí)行的順序:
? * 1.try內(nèi)的代碼從出現(xiàn)異常的那一行開始,中斷執(zhí)行
? * 2.執(zhí)行對應(yīng)的catch塊內(nèi)的代碼
? * 3.繼續(xù)執(zhí)行try catch結(jié)構(gòu)之后的代碼
? *注意點:
? * 1.如果catch內(nèi)的異常類存在子父類的關(guān)系,那么子類應(yīng)該在前,父類在后
? * 2。如果最后中有返回語句,那么最后返回的結(jié)果肯定以最終中的返回值為準(zhǔn)
? * 3。如果最后語句中有回報,那么沒有被處理的異常將會被吞掉
? *重寫的注意點:
? * 1.兒子不能比父親的本事大
? * 2.兒子要比父親開放
? * 3.兒子不能比父親惹更大的麻煩(子類的異常的類型不能是父類的異常的父類型)
? *異常類Api:
? * 1。的getMessage():獲取異常描述信息字符串
? * 2。的toString():返回異常類的包路徑和類
名和異常描述信息字符串??
? * 3。的printStackTrace():除了打印的toString的信息外,還要打印堆棧信息
? * /
上面一段注釋來自網(wǎng)上這位博主的,覺得寫的很好,傳送門地址:http://www.dhdzp.com/article/231170.htm
package Bird;
import java.io.FileNotFoundException;
import java.io.FileReader;
//
public class TestYc {
public static void main(String[] args) {
try{
FileReader fr = new FileReader("c:/abc.txt");
} catch (FileNotFoundException e) {
//打印輸出異常
e.printStackTrace();
}
Mother mother = new Mother();
mother.bbb();
//1.編譯時異常
//讀取該路徑"c:/abc.txt"下的文件
/* try {
FileReader fr = new FileReader("c:/abc.txt");
}catch(FileNotFoundException e) {
//打印輸出異常
e.printStackTrace();
}*/
int [] arr = new int[] {1,2,3};
System.out.println(arr[2]);
}
}
class Mother {
private Boy b = null;
// 構(gòu)造器
public Mother() {
b = new Boy();
}
public void bbb() {
// TODO Auto-generated method stub
//調(diào)用帶有異常的方法
try {
b.aaa();
}catch(FileNotFoundException e) {
e.printStackTrace();
}
}
}
class Boy {
// throws 把異常拋給上層的調(diào)用者
public void aaa() throws FileNotFoundException{
FileReader fr = new FileReader("c:/abc.txt");
}
}
運行截圖,文件打開不存在:

?正常運行截圖:

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Collections工具類_動力節(jié)點Java學(xué)院整理
Collections工具類提供了大量針對Collection/Map的操作。這篇文章主要介紹了Collections工具類_動力節(jié)點Java學(xué)院整理,需要的朋友可以參考下2017-04-04
SpringBoot啟動時自動執(zhí)行代碼的幾種實現(xiàn)方式
這篇文章主要給大家介紹了關(guān)于SpringBoot啟動時自動執(zhí)行代碼的幾種實現(xiàn)方式,文中通過實例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2022-02-02
解決springboot bean中大寫的字段返回變成小寫的問題
這篇文章主要介紹了解決springboot bean中大寫的字段返回變成小寫的問題,具有很好的參考價值希望對大家有所幫助。一起跟隨小編過來看看吧2021-01-01
springboot中用fastjson處理返回值為null的屬性值
在本篇文章里小編給大家整理的是一篇關(guān)于springboot中用fastjson處理返回值問題詳解內(nèi)容,需要的朋友們參考下。2020-03-03
Java數(shù)組與二維數(shù)組及替換空格實戰(zhàn)真題講解
數(shù)組對于每一門編程語言來說都是重要的數(shù)據(jù)結(jié)構(gòu)之一,當(dāng)然不同語言對數(shù)組的實現(xiàn)及處理也不盡相同。Java?語言中提供的數(shù)組是用來存儲固定大小的同類型元素,這篇文章主要介紹了Java數(shù)組與二維數(shù)組及替換空格實戰(zhàn)真題講解2022-07-07
IntelliJ IDEA 安裝教程2019.09.23(最新版)
本文通過圖文并茂的形式給大家介紹了IntelliJ IDEA 安裝教程2019.09.23最新版,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下2019-10-10

