大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節(jié)點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學(xué)習(xí)攻略 Java學(xué)習(xí) 簡述Java中異常處理的機制

簡述Java中異常處理的機制

更新時間:2022-08-08 12:39:48 來源:動力節(jié)點 瀏覽1718次

Java中的異常處理是處理運行時錯誤的有效手段之一,可以保持應(yīng)用程序的正常流程。Java 異常處理是一種處理運行時錯誤的機制,例如 ClassNotFoundException、IOException、SQLException、RemoteException 等。

異常是在程序執(zhí)行期間(即在運行時)發(fā)生的不希望或意外事件,它會破壞程序指令的正常流程。程序可以捕獲和處理異常。當(dāng)方法中發(fā)生異常時,它會創(chuàng)建一個對象。該對象稱為異常對象。它包含有關(guān)異常的信息,例如異常的名稱和描述以及異常發(fā)生時程序的狀態(tài)。

發(fā)生異常的主要原因

用戶輸入無效

設(shè)備故障

網(wǎng)絡(luò)連接丟失

物理限制(磁盤內(nèi)存不足)

代碼錯誤

打開不可用的文件

錯誤表示Java虛擬機(JVM)內(nèi)存不足、內(nèi)存泄漏、堆棧溢出錯誤、庫不兼容、無限遞歸等不可恢復(fù)的情況。錯誤通常超出程序員的控制范圍,我們不應(yīng)該嘗試處理錯誤.

讓我們討論最重要的部分,即錯誤和異常之間的區(qū)別,如下所示:

錯誤: 錯誤表示合理的應(yīng)用程序不應(yīng)嘗試捕獲的嚴(yán)重問題。

異常: 異常表示合理的應(yīng)用程序可能試圖捕獲的條件。

異常層次結(jié)構(gòu)

所有異常和錯誤類型都是Throwable類的子類,后者是層次結(jié)構(gòu)的基類。一個分支由Exception領(lǐng)導(dǎo)。此類用于用戶程序應(yīng)捕獲的異常情況。NullPointerException 是此類異常的一個示例。Java 運行時系統(tǒng) ( JVM ) 使用另一個分支Error來指示與運行時環(huán)境本身 (JRE) 相關(guān)的錯誤。StackOverflowError 就是此類錯誤的一個示例。

例外類型

Java 定義了與其各種類庫相關(guān)的幾種異常類型。Java 還允許用戶定義自己的異常。

異??梢苑譃閮煞N方式:

1.內(nèi)置異常

檢查異常

未經(jīng)檢查的異常

2.用戶定義的異常

Java中異常處理的優(yōu)點如下:

提供完成程序執(zhí)行

輕松識別程序代碼和錯誤處理代碼

錯誤的傳播

有意義的錯誤報告

識別錯誤類型

打印異常信息的方法:

1.printStackTrace() - 此方法以異常名稱的格式打印異常信息:異常描述、堆棧痕跡。

//program to print the exception information using printStackTrace() method
import java.io.*;
class GFG {
	public static void main (String[] args) {
	int a=5;
	int b=0;
		try{
		System.out.println(a/b);
		}
	catch(ArithmeticException e){
		e.printStackTrace();
	}
	}
}

輸出:

java.lang.ArithmeticException: / 由零
在 GFG.main(File.java:10)

2.toString() - 此方法以異常名稱:異常描述的格式打印異常信息。

//program to print the exception information using toString() method
import java.io.*;
class GFG1 {
	public static void main (String[] args) {
	int a=5;
	int b=0;
		try{
		System.out.println(a/b);
		}
	catch(ArithmeticException e){
		System.out.println(e.toString());
	}
	}
}

輸出:

java.lang.ArithmeticException: / 由零

3.getMessage() - 這個方法只打印異常的描述。

//program to print the exception information using getMessage() method
import java.io.*;
class GFG1 {
	public static void main (String[] args) {
	int a=5;
	int b=0;
		try{
		System.out.println(a/b);
		}
	catch(ArithmeticException e){
		System.out.println(e.getMessage());
	}
	}
}

輸出:

/ 由零

JVM 如何處理異常?

默認(rèn)異常處理:只要在方法內(nèi)部發(fā)生異常,該方法就會創(chuàng)建一個稱為異常對象的對象并將其交給運行時系統(tǒng)(JVM)。異常對象包含異常的名稱和描述以及發(fā)生異常的程序的當(dāng)前狀態(tài)。創(chuàng)建異常對象并在運行時系統(tǒng)中處理它稱為拋出異常。可能有一個方法列表,這些方法已被調(diào)用以獲取發(fā)生異常的方法。這個有序的方法列表稱為Call Stack?,F(xiàn)在將發(fā)生以下過??程。

運行時系統(tǒng)搜索調(diào)用堆棧以找到包含可以處理發(fā)生的異常的代碼塊的方法。該代碼塊稱為異常處理程序。

運行時系統(tǒng)從發(fā)生異常的方法開始搜索,并以調(diào)用方法的相反順序遍歷調(diào)用Java堆棧。

如果它找到合適的處理程序,則將發(fā)生的異常傳遞給它。適當(dāng)?shù)奶幚沓绦蛞馕吨鴴伋龅漠惓ο蟮念愋团c它可以處理的異常對象的類型相匹配。

如果運行時系統(tǒng)搜索調(diào)用堆棧上的所有方法并且找不到合適的處理程序,則運行時系統(tǒng)將異常對象移交給默認(rèn)異常處理程序,它是運行時系統(tǒng)的一部分。該處理程序以下列格式打印異常信息并異常終止程序。

提交申請后,顧問老師會電話與您溝通安排學(xué)習(xí)

免費課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 欧美视频www | 夜夜资源 | www.日韩视频 | 狠狠激情| 婷婷在线视频观看 | 国产一级淫片a视频免费观看 | 亚洲成人免费视频在线 | 九九色综合 | 免费观看毛片视频 | 色综合a怡红院怡红院首页 色综合h | 欧美日韩中文字幕在线手机版本 | 99成人精品 | 一区二区三区中文字幕 | 国产成人免费a在线视频色戒 | 一级黄色录像免费看 | 狠狠操狠狠操狠狠操 | 成年人视频黄色 | 欧美日韩激情在线一区 | 99热这里只有精品66 | 欧美综合区 | 四虎国产在线观看 | 久久99精品九九九久久婷婷 | 一级a性色生活片毛片 | 九九热最新视频 | 久久97精品久久久久久清纯 | 免费一级a毛片夜夜看 | 国产亚洲男人的天堂在线观看 | 四虎海外影院 | 爱爱免费观看高清视频在线播放 | 日韩在线一区视频 | 亚洲欧美日本国产综合在线 | 国产精品免费一级在线观看 | 日韩中文精品亚洲第三区 | 中文日产国产精品久久 | 亚洲一区二区三区高清视频 | 综合久久久| 免费国产成人综合 | 性视频一区二区三区免费 | 国产亚洲综合在线 | 日本裤袜xxxx视频 | 国产精品伦理一区二区三区 |