當前位置:首頁 » 編程語言 » throwablejava

throwablejava

發布時間: 2024-05-04 05:22:56

『壹』 java 中 Throwable是所有異常類的祖先 對嗎

拜託,以後請先看JDK.
public class Throwable extends Object implements Serializable
Throwable 類是 Java 語言中所有錯誤或異常的超類。只有當對象是此類(或其子類之一)的實例時,才能通過 Java 虛擬機或者 Java throw 語句拋出。類似地,只有此類或其子類之一才可以是 catch 子句中的參數類型。 兩個子類的實例,Error 和 Exception,通常用於指示發生了異常情況。通常,這些實例是在異常情況的上下文中新近創建的,因此包含了相關的信息(比如堆棧跟蹤數據)。

『貳』 Java中的異常處理機制的簡單原理和應用。

Java中的異常處理機制的簡單原理和應用 :

java中Throwable這個類可以被作為異常拋出的類,繼承它的分為異常Exception和錯誤Error.

Exception表示程序需要捕捉和處理的的異常;

Error表示系統級別的錯誤和程序無需處理的。

我們所需要關心的是Exception. Execption可以分為java標準定義的異常和程序員自定義異常2種.

(1)一種是當程序違反了java語規則的時候,JAVA虛擬機就會將發生的錯誤表示為一個異常.這里語法規則指的是JAVA類庫內置的語義檢查。

(2)另一種情況就是JAVA允許程序員擴展這種語義檢查,程序員可以創建自己的異常,並自由選擇在何時用throw關鍵字引發異常。所有的異常都是Thowable的子類。

異常處理是與程序執行是並行的.

Try{

//可能發現異常的語句塊

}catch(異常類型,e){

//發生異常時候的執行語句塊

}finnally{

//不管是否發生異常都執行的語句塊

}

以下是一個自定義異常測試類:

packagecode;

{
publicvoidf()
{
System.out.println("thisismyException!!");
}
}
publicclassExceptionTestTwo{
privateinti=0;
privateintj;
ExceptionTestTwo(intx)throwsMyException
{
f2();
j=x/i;
}
publicvoidf2()throwsMyException
{
System.out.println("thisisMyfirstException!!");
thrownewMyException();
}
publicstaticvoidmain(String[]args)
{
try{
newExceptionTestTwo(9);
}catch(MyExceptione2){
e2.f();
}catch(Exceptione){
e.printStackTrace();
}finally{
System.out.println("FinallyisfirstException!!");
}
try{
thrownewMyException();
}catch(MyExceptione1){
e1.f();
}finally{
System.out.println("FinallyissecondException!!");
}
}
}

『叄』 鎵鏈夊紓甯哥被鐨嗙戶鎵垮摢涓涓綾

Throwable銆傚湪Java涓錛屾墍鏈夌殑寮傚父綾婚兘緇ф壙鑷猅hrowable綾伙紝Throwable綾繪槸Java寮傚父澶勭悊鏈哄埗涓鏈楂樺眰嬈$殑綾伙紝鍖呮嫭鎵鏈夊彲浠ラ氳繃throw鍏抽敭瀛楁姏鍑虹殑寮傚父銆

『肆』 java異常分類

一、概念
如果某個方法不能按照正常的途徑完成任務,就可以通過另一種路徑退出方法。在這種情況下
會拋出一個封裝了錯誤信息的對象。此時,這個方法會立刻退出同時不返回任何值。另外,調用
這個方法的其他代碼也無法繼續執行,異常處理機制會將代碼執行交給異常處理器。

二、異常分類
Throwable 是 Java 語言中所有錯誤或異常的超類,在 Java 中只有 Throwable 類型的實例才可以被拋出(throw)或者捕獲(catch),它是異常處理機制的基本組成類型。
實例分為 Error 和 Exception 兩種。

2.1、Error
Error 類是指 java 運行時系統的內部錯誤和資源耗盡錯誤。應用程序不會拋出該類對象。如果
出現了這樣的錯誤,除了告知用戶,剩下的就是盡力使程序安全的終止。

2.2、Exception
Exception 又有兩個分支 , 一個是運行時異常 RuntimeException , 一 個是檢查異常 CheckedException。

RuntimeException 如 :NullPointerException 、 ClassCastException ;
CheckedException 如: I/O 錯誤導致的 IOException、SQLException。

RuntimeException 是那些可能在 Java 虛擬機正常運行期間拋出的異常的超類。 如果出現 RuntimeException,那麼一
定是程序員代碼書寫導致的錯誤.

CheckedException:一般是外部錯誤,這種異常都發生在編譯階段,Java 編譯器會強
製程序去捕獲此類異常,即會出現要求你把這段可能出現異常的程序進行 try catch,該類異常一
般包括幾個方面:

試圖在文件尾部讀取數據
試圖打開一個錯誤格式的 URL
試圖根據給定的字元串查找 class 對象,而這個字元串表示的類並不存在
三、異常的處理方式
3.1、不處理
遇到異常問題不進行具體處理,而是繼續拋給調用者 (throw,throws)
拋出異常有三種形式,一是 throw,再就是 throws,還有一種系統自動拋異常。

public static void main(String[] args) {
String s = "abc";
if(s.equals("abc")) {
/** 手動拋出一個數字格式化異常 **/
throw new NumberFormatException();
} else {
System.out.println(s);
}
}

int div(int a,int b) throws Exception{
return a/b;
}
3.2、處理
try catch 捕獲異常針對性處理方式

四、Throw 和 throws 的區別
throws 用在函數上,後面跟的是異常類,可以跟多個;

語法:(修飾符)(方法名)([參數列表])[throws(異常類)]{……}
public void doA(int a) throws Exception1,Exception3{……}

throw 用在函數內,後面跟的是異常對象。

throws E1,E2,E3隻是告訴程序這個方法可能會拋出這些異常,方法的調用者可能要處理這些異常,而這些異常E1,E2,E3可能是該函數體產生的。
throw則是明確了這個地方要拋出這個異常。

結合來看:

void doA(int a) throws IOException,{
try{
......
}catch(Exception1 e){
throw e;
}catch(Exception2 e){
System.out.println("出錯了!");
}
if(a!=b)
throw new Exception3("自定義異常");
}
throws 用來聲明異常,讓調用者知道該功能可能會出現的問題(比如上方的 IO 異常),可以給出預先的處理方式;
throw 拋出具體的問題對象,執行到 throw,功能就已經結束了,跳轉到調用者,並將具體的問題對象拋給調用者。
也就是說 throw 語句獨立存在時,下面不要定義其他語句,因為執行不到。

概括:
throws 表示出現異常的一種可能性,並不一定會發生這些異常;
throw 則是拋出了異常,執行 throw 則一定拋出了某種異常對象。

五、總結
了解 Exception、Error 兩種異常的區別,面試可能會問。
區分 throws、throw使用維度。

熱點內容
電腦主機做伺服器下載快不 發布:2024-11-28 00:32:40 瀏覽:386
冷凍存儲盒 發布:2024-11-28 00:21:04 瀏覽:127
達內幼兒編程 發布:2024-11-28 00:21:02 瀏覽:320
我的世界下100層是什麼伺服器 發布:2024-11-28 00:16:50 瀏覽:548
怎麼改配置密碼 發布:2024-11-28 00:16:44 瀏覽:113
伺服器晶元v幾是什麼 發布:2024-11-28 00:15:37 瀏覽:599
家庭麥克需要什麼配置才能用 發布:2024-11-28 00:05:28 瀏覽:384
c語言then是什麼意思 發布:2024-11-27 23:54:07 瀏覽:195
提升訪問 發布:2024-11-27 23:41:39 瀏覽:821
為什麼學習編程 發布:2024-11-27 23:41:37 瀏覽:942