久久久精品一区ed2k-女人被男人叉到高潮的视频-中文字幕乱码一区久久麻豆樱花-俄罗斯熟妇真实视频

Java中為什么會出現(xiàn)Exception結構異常-創(chuàng)新互聯(lián)

這期內容當中小編將會給大家?guī)碛嘘PJava中為什么會出現(xiàn)Exception結構異常,文章內容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

創(chuàng)新互聯(lián)為客戶提供專業(yè)的成都做網(wǎng)站、網(wǎng)站制作、程序、域名、空間一條龍服務,提供基于WEB的系統(tǒng)開發(fā). 服務項目涵蓋了網(wǎng)頁設計、網(wǎng)站程序開發(fā)、WEB系統(tǒng)開發(fā)、微信二次開發(fā)、成都做手機網(wǎng)站等網(wǎng)站方面業(yè)務。

1. Java異常Exception的結構分析

我們通常所說的Exception主要是繼承于Throwable而來,可以參見如下的結構圖示:

Java中為什么會出現(xiàn)Exception結構異常

主要的Throwable分為異常和錯誤兩種,然后異常Exception和錯誤Error做為基類,分別被具體個性化以及衍生出NullPointerException、EOFException等等異常信息類。

基于Java中的源代碼來分析,Error和Exception僅僅是繼承了Throwable,做了構造函數(shù)的拓展,沒有進行額外方法的延展;Exception輸出的主要核心方法都是定義在Throwable中的,感興趣的童鞋可以嘗試閱讀JDK的源代碼。

Java中為什么會出現(xiàn)Exception結構異常

下面將介紹一下關鍵的幾個異常類方法:

1、getMessage(): String

輸出異常的描述信息

2、getLocalizedMessage()

輸出本地化的描述信息,一般此方法可被子類所覆蓋,缺省實現(xiàn)與getMessage()輸出信息一致

3、printStackTrace()

將異常棧打印到輸出流中,此為一類方法,默認打印到console控制臺,也可以顯式指定輸出流。

4、fillInStackTrace()

將當前的異常棧保存到一個Throwable中,返回這個Throwable。大部分情況下,用在保留異常棧嵌套調用的情況,嘗試保留完整的異常棧,無需使用該方法。

2. Error vs Exception

Error在Java體系中定義為不可控制的問題,往往用來描述系統(tǒng)錯誤或者底層的問題,比如虛擬機錯誤,例如內存空間不足,方法調用棧溢等。我們以上圖中列舉出的內存溢出錯誤(StackOverflowError)為例,它是在JVM層面發(fā)生的錯誤,已經(jīng)游離于java應用層之外;在應用程序層面是無法進行捕獲,且無法從錯誤中恢復的。一般一旦發(fā)了類似問題,一般都是直接宕機,應用停止正常的工作,需要重新啟動或者修復問題之后,方可重新正常工作。

Exception一般發(fā)生在應用層,即在由項目中的Java代碼層面引發(fā)的問題,且可以嘗試進行捕獲,此類問題不會影響到應用程序的正常工作的,即不會導致宕機現(xiàn)象的發(fā)生。我們在工作或者代碼中常見的都是Exception衍生出來的各類異常。

這里需要強調說明一下,JVM是Java語言的運行環(huán)境和平臺,但是并不是Java語言體系的一個部分;在JVM平臺上,還可以運行Groovy, JPython, JRuby, Closure,Scala等等遵守Java語言規(guī)范(JavaLanguage Specification)的編程語言,故我們可以將Error理解為脫離Java應用之外的問題。

3. Exception中的運行時異常(RuntimeException)和受控異常(checked exception)

運行時異常(RuntimeException)是指在運行之時發(fā)生的異常,無需顯式地進行捕獲;如果程序中發(fā)生類似的異常,JVM會直接拋出此類異常,并打出響應的異常棧信息。此類異常也通常被稱為unchecked exception, 未受控異常。

受控異常(checked Exception)是我們最常見的異常種類,在代碼中使用的異?;旧隙际谴祟惍惓#祟惍惓诖a編譯階段由Java編譯器進行語法檢查,如果未顯式進行異常捕獲,則會報出相應的編譯異常信息。

4. 如何在代碼中正確打印異常信息

下面我們將通過一系列的例子來說明上述幾個Exception中方法的使用技巧。

Case 1: getMessage()/getLocalizedMessage()

public void testCase1() {
System.out.println("We are going to do something interesting....");
try {
throw new NullPointerException("I am an exception in the code.");
} catch (Exception e) {
System.out.println("We got unexpected:" + e.getMessage());
System.out.println("We got unexpected:" + e.getLocalizedMessage());
}
}

文章標題:Java中為什么會出現(xiàn)Exception結構異常-創(chuàng)新互聯(lián)
分享網(wǎng)址:http://sd-ha.com/article46/djjjeg.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供標簽優(yōu)化、面包屑導航、品牌網(wǎng)站建設微信小程序、網(wǎng)站改版、App開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

h5響應式網(wǎng)站建設