糯米文學吧

位置:首頁 > 計算機 > java語言

關於Java語言的異常

java語言9.49K

導語:Java語言程序運行過程中的不正常現象就叫異常,那麼都有哪些情況呢?讓我們瞭解一下吧!

關於Java語言的異常

  (1)程序運行過程中的不正常現象就叫異常。

  (2)導致程序運行不正常的現象有很多,所以,就有很多的異常對象。

而這些異常對象存在着共性的內容,所以,可以不斷的進行抽取。最終形成了異常的體系結構。

異常體系的根類是:Throwable

Throwable:

|--Error:重大的問題,我們處理不了。也不需要編寫代碼處理。比如説內存溢出。

|--Exception:一般性的錯誤,是需要我們編寫代碼進行處理的.。

|--RuntimeException:運行時異常,這個我們也不需要處理。

其實就是為了讓他在運行時出問題,然後我們回來修改代碼。

  (3)異常的分類

異常有兩種:

編譯時被檢測異常:

該異常在編譯時,如果沒有處理(沒有拋也沒有try),編譯失敗。

該異常被標識,代表這可以被處理。

運行時異常(編譯時不檢測)

在編譯時,不需要處理,編譯器不檢查。

該異常的發生,建議不處理,讓程序停止。需要對代碼進行修正。

  (4)異常體系的特點:

異常體系中的所有類及其子類對象都具備可拋性。也就是説可以被throw和throws關鍵字所操作。

  (5)main方法是如何處理異常的。

A:在main裏面編寫代碼進行處理

B:交給jvm自己進行處理。採用的是jvm的默認處理方式。

其實就是相當於調用了異常對象的printStackTrace()方法。

  (6)Throwable類的學習

getMessage():獲取異常信息,返回字符串。

toString():獲取異常類名和異常信息,返回字符串。

printStackTrace():獲取異常類名和異常信息,以及異常出現在程序中的位置。返回值void。

  (7)異常的處理·

A:lly

基本格式:

try

{

可能出現異常的代碼

}

catch(異常對象)

{

異常處理代碼

}

finally

{

釋放資源

}

變形格式:

h

h...

lly

**多個異常同時被捕獲的時候,記住一個原則:

先逮小的,再逮大的。

**finally:永遠被執行,除非退出jvm。(0);

面試題2個。

***:final,finally,finalize區別。

final是最終的意思。它可以用於修飾類,成員變量,成員方法。

它修飾的類不能被繼承,它修飾的變量時常量,它修飾的方法不能被重寫。

finally:是異常處理裏面的關鍵字。

它其中的代碼永遠被執行。特殊情況:在執行它之前jvm退出。(0);

finalize:是Object類中的一個方法。

它是於垃圾回收器調用的方式。

***:假如catch中有return語句, finally裏中的代碼會執行嗎?

是在return前,還是在return後呢?

會,在return前執行finally裏面的代碼。

  (8)Exception和RuntimeException的區別

A:Exception:一般性的錯誤,是需要我們編寫代碼進行處理的。

B:RuntimeException:運行時異常,這個我們也不需要處理。

其實就是為了讓他在運行時出問題,然後我們回來修改代碼。

在用throws拋出一個的時候,如果這個異常是屬於RuntimeException的體系的時候,

我們在調用的地方可以不用處理。(RuntimeException和RuntimeException的子類)

在用throws拋出一個的時候,如果這個異常是屬於Exception的體系的時候,

我們在調用的地方必須進行處理或者繼續拋出。

  (9)自定義異常

定義類繼承Exception或者RuntimeException

1,為了讓該自定義類具備可拋性。

2,讓該類具備操作異常的共性方法。

class MyExcepiton extends Exception

{

MyExcepiton(){}

MyExcepiton(String message)

{

super(message);

}

}

class MyException extends RuntimeException

{

MyExcepiton(){}

MyExcepiton(String message)

{

super(message);

}

}

  (10)throws和throw的區別

A:有throws的時候可以沒有throw。

有throw的時候,如果throw拋的異常是Exception體系,那麼必須有throws在方法上聲明。

B:throws用於方法的聲明上,其後跟的是異常類名,後面可以跟多個異常類,之間用逗號隔開

throw用於方法體中,其後跟的是一個異常對象名。

標籤:JAVA 語言