欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java異常處理try?catch的基本用法

 更新時(shí)間:2021年12月06日 10:24:39   作者:花澤香瓜  
try就像一個(gè)網(wǎng),把try{}里面的代碼所拋出的異常都網(wǎng)住,然后把異常交給catch{}里面的代碼去處理。最后執(zhí)行finally之中的代碼。無(wú)論try中代碼有沒(méi)有異常,也無(wú)論catch是否將異常捕獲到,finally中的代碼都一定會(huì)被執(zhí)行。

try catch介紹

我們編譯運(yùn)行程序出錯(cuò)的時(shí)候,編譯器就會(huì)拋出異常。拋出異常要比終止程序靈活許多,這是因?yàn)镴ava提供了一個(gè)“捕獲”異常的的處理器(處理器)對(duì)異常情況進(jìn)行處理。

如果沒(méi)有提供處理器機(jī)制,程序就會(huì)終止,并在控制臺(tái)上打印一條信息,給出異常的類(lèi)型.L

比如:使用了NULL引用或者是數(shù)組越界等。

異常有兩種類(lèi)型:未檢查異常和已檢查異常對(duì)于已檢查異常,處理器器將會(huì)檢查是否提供了處理器。

然而有許多的異常,如:訪問(wèn)null引用,都屬于未檢查異常。編譯器不會(huì)查看是否為這些錯(cuò)誤提供了處理器。畢竟,應(yīng)該用嚴(yán)謹(jǐn)?shù)膽B(tài)度來(lái)對(duì)待寫(xiě)代碼,依次避免這些錯(cuò)誤的發(fā)生,而不是將精力花在編寫(xiě)異常處理器上。

?廢話少說(shuō),show coder:?

?/ * try catch:自己處理異常

? * try {

? *可能出現(xiàn)異常的代碼

? *} catch(異常類(lèi)名A e){

? *如果出現(xiàn)了異常類(lèi)A類(lèi)型的異常,那么執(zhí)行該代碼

? *} ...(catch可以有多個(gè))

? * finally {

? *最終肯定必須要執(zhí)行的代碼(例如釋放資源的代碼)

? *}

? *代碼執(zhí)行的順序:

? * 1.try內(nèi)的代碼從出現(xiàn)異常的那一行開(kāi)始,中斷執(zhí)行

? * 2.執(zhí)行對(duì)應(yīng)的catch塊內(nèi)的代碼

? * 3.繼續(xù)執(zhí)行try catch結(jié)構(gòu)之后的代碼

? *注意點(diǎn):

? * 1.如果catch內(nèi)的異常類(lèi)存在子父類(lèi)的關(guān)系,那么子類(lèi)應(yīng)該在前,父類(lèi)在后

? * 2。如果最后中有返回語(yǔ)句,那么最后返回的結(jié)果肯定以最終中的返回值為準(zhǔn)

? * 3。如果最后語(yǔ)句中有回報(bào),那么沒(méi)有被處理的異常將會(huì)被吞掉

? *重寫(xiě)的注意點(diǎn):

? * 1.兒子不能比父親的本事大

? * 2.兒子要比父親開(kāi)放

? * 3.兒子不能比父親惹更大的麻煩(子類(lèi)的異常的類(lèi)型不能是父類(lèi)的異常的父類(lèi)型)

? *異常類(lèi)Api:

? * 1。的getMessage():獲取異常描述信息字符串

? * 2。的toString():返回異常類(lèi)的包路徑和類(lèi)

名和異常描述信息字符串??

? * 3。的printStackTrace():除了打印的toString的信息外,還要打印堆棧信息

? * /

上面一段注釋來(lái)自網(wǎng)上這位博主的,覺(jué)得寫(xiě)的很好,傳送門(mén)地址:http://www.dbjr.com.cn/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.編譯時(shí)異常
	//讀取該路徑"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");
	}
}

運(yùn)行截圖,文件打開(kāi)不存在:

?正常運(yùn)行截圖:

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java如何修改.class文件變量

    Java如何修改.class文件變量

    這篇文章主要介紹了Java如何修改.class文件變量,幫助大家更好的理解和學(xué)習(xí)Java,感興趣的朋友可以了解下
    2020-09-09
  • 詳細(xì)解讀Java編程中面向字符的輸入流

    詳細(xì)解讀Java編程中面向字符的輸入流

    這篇文章主要介紹了Java中面向字符的輸入和輸出流,是Java入門(mén)學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2015-10-10
  • Java 入門(mén)圖形用戶(hù)界面設(shè)計(jì)之列表框JList

    Java 入門(mén)圖形用戶(hù)界面設(shè)計(jì)之列表框JList

    圖形界面(簡(jiǎn)稱(chēng)GUI)是指采用圖形方式顯示的計(jì)算機(jī)操作用戶(hù)界面。與早期計(jì)算機(jī)使用的命令行界面相比,圖形界面對(duì)于用戶(hù)來(lái)說(shuō)在視覺(jué)上更易于接受,本篇精講Java語(yǔ)言中關(guān)于圖形用戶(hù)界面的列表框JList
    2022-02-02
  • 淺析Java中XPath和JsonPath以及SpEL的用法與對(duì)比

    淺析Java中XPath和JsonPath以及SpEL的用法與對(duì)比

    XPath,即XML路徑語(yǔ)言,是一種用于在XML文檔中查找信息的語(yǔ)言,JsonPath是從XPath中發(fā)展而來(lái)的,專(zhuān)門(mén)用于JSON數(shù)據(jù)格式,本文主要來(lái)講講他們的用法與區(qū)別,需要的可以參考下
    2023-11-11
  • 23種設(shè)計(jì)模式(9) java橋接模式

    23種設(shè)計(jì)模式(9) java橋接模式

    這篇文章主要為大家詳細(xì)介紹了java設(shè)計(jì)模式之橋接模式,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • IDEA報(bào)錯(cuò)"Cannot?resolve?symbol"問(wèn)題的解決辦法

    IDEA報(bào)錯(cuò)"Cannot?resolve?symbol"問(wèn)題的解決辦法

    早上來(lái)了,打開(kāi)idea發(fā)現(xiàn)注解等都變紅報(bào)錯(cuò)can’t resolvesymbol,由于這個(gè)錯(cuò)之前也報(bào)過(guò),所以記錄一下,這篇文章主要給大家介紹了關(guān)于IDEA報(bào)錯(cuò)"Cannot?resolve?symbol"問(wèn)題的解決辦法,需要的朋友可以參考下
    2023-11-11
  • 并發(fā)編程之Java內(nèi)存模型

    并發(fā)編程之Java內(nèi)存模型

    這篇文章主要介紹了Java并發(fā)編程之內(nèi)存模型,Java內(nèi)存模型中的順序一致性,主要介紹重排序與順序一致性?xún)?nèi)存模型,下面文章將圍繞Java內(nèi)存模型展開(kāi)內(nèi)容,需要的小伙伴可以參考一下
    2021-11-11
  • SpringBoot項(xiàng)目打成war和jar的區(qū)別說(shuō)明

    SpringBoot項(xiàng)目打成war和jar的區(qū)別說(shuō)明

    這篇文章主要介紹了SpringBoot項(xiàng)目打成war和jar的區(qū)別說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • java 中二分法查找的應(yīng)用實(shí)例

    java 中二分法查找的應(yīng)用實(shí)例

    這篇文章主要介紹了java 中二分法查找的應(yīng)用實(shí)例的相關(guān)資料,希望通過(guò)本文大家能掌握二分法的使用方法,需要的朋友可以參考下
    2017-09-09
  • SpringBoot整合Shiro和Redis的示例代碼

    SpringBoot整合Shiro和Redis的示例代碼

    這篇文章主要介紹了SpringBoot整合Shiro和Redis的示例代碼,本文通過(guò)示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-04-04

最新評(píng)論