javathrowable
⑴ java中什麼類是所有異常類的父類
告訴你什麼類
沒有什麼意義,告訴你一個方法。1.
確定有JDK源碼。2.
在eclipse
里,
按CTRL
+
ecception類類名,
就可以到exception類的原碼,
在類的聲明中,
看看有沒有
extend
某個父類。3.
如果有
重復第2步的操作。4.
一直到沒有
繼承
自某個類,
那麼最後這個類就是
所有異常的父類了。
⑵ JAVA 中 Throwable是所有異常類的祖先 對嗎
拜託,以後請先看JDK.
public class Throwable extends Object implements Serializable
Throwable 類是 Java 語言中所有錯誤或異常的超類。只有當對象是此類(或其子類之一)的實例時,才能通過 Java 虛擬機或者 Java throw 語句拋出。類似地,只有此類或其子類之一才可以是 catch 子句中的參數類型。 兩個子類的實例,Error 和 Exception,通常用於指示發生了異常情況。通常,這些實例是在異常情況的上下文中新近創建的,因此包含了相關的信息(比如堆棧跟蹤數據)。
⑶ 如何理解java.lang.Throwable
lang 是 language(語言) 的簡寫 是java中常用方法最多的包 包含常用類 軟體包 java.lang 的描述提供利用 Java 編程語言進行程序設計的基礎類。最重要的類是 Object(它是類層次結構的根)和 Class(它的實例表示正在運行的應用程序中的類)。
⑷ java中為何泛型類不能繼承Throwable
意義,
異常發生在底層實現,
捕獲異常在上層。
泛型,用於使用某個類的時候限制相關類型。
顯然限制相關類型這個工作應該是哪裡用哪裡直到。
如果異常支持泛型,
那捕獲異常的地方就要知道異常的泛型,也就必要知道了功能實現。
假設可以拋出有泛型的異常
如果說一個方法被聲明為 throws SomeException<String>,SomeException<Number>
那麼對於外界來說String的意義是什麼
外界是否要捕獲 分別SomeException<String> 和 SomeException<Number>?
還是只要捕獲 SomeException<?>?
這無疑增加了異常處理的復雜度。
異常,最初設計就是為了把異常處理的代碼和業務邏輯的代碼分開,不會粘粘到一起。
這樣可以在寫業務邏輯的時候拋開泛型暫時不管,先把完整的業務邏輯寫完,然後單獨處理異常情況。
現在如果異常支持泛型,那麼就會導致異常處理的復雜度增加。不能專心與業務邏輯。
⑸ Throwable怎麼讀啊 java里的所有的子類啊
Java 異常結構
異常時程序運行過程中產生的錯誤。
異常處理框架時java語言健壯性的一個重要體現。
Java把異常當做對象來處理,並定義一個基類java.lang.Throwable作為所有異常的超類。
在java API中已定義了許多異常類,這些異常類分為兩大類,錯誤類Error和異常Exception。
Java異常體系結構呈樹狀,其層次結構如圖:
Thorwable類所有異常和錯誤的超類,有兩個子類Error和exception,分別表示錯誤和異常。
其中異常類Exception又分為運行時異常(RuntimeException)和檢查異常(Checked Exception)。
兩者的區別:
Error和Exception
Error是程序無法處理的錯誤,比如OutOfMemoryError、ThreadDeath等。這些異常發生時,java虛擬機(JVM)一般會選擇線程終止。
Exception是程序本身可以處理的異常,這種異常分兩大類:運行時異常和非運行時異常。程序中應當盡可能去處理這些異常。
運行時異常和非運行時異常
運行時異常都是RuntimeException類及其子類異常,如NullPointerException、IndexOutOfBoundsException等,這些異常是不檢查異常,程序中可以選擇捕獲處理,也可以不處理。這些異常一般是有程序邏輯錯誤引起的,程序應該從邏輯角度盡可能避免這類異常的發生。
非運行時異常是RuntimeException以外的異常,類型上屬於Exception類及其子類。從程序角度講是必須進行處理的異常,如果不處理,程序就不能編譯通過。如IOException、SQLException等以及用戶自定義的Exception異常,一般情況下自定義檢查異常。
⑹ Java編程中 常見的異常有哪幾種
相信作為程序員的我們在對程序進行編譯過程中經常會遇到錯誤,或者在運行過程中出現錯誤,在這里主要跟大家談談經常遇到的一些異常與錯誤,以及解決辦法。
異常是指程序在編譯或運行過程出現的錯誤。
在java.lang包中Throwable包含了所有的異常。
Error (錯誤) 和Exception(異常)
(1)Error(錯誤)
一旦發生無法修復,但可以避免發生。
常見錯誤類:
IOError:I/O錯誤,當發生嚴重的I/O錯誤時,拋出此錯誤。
VirtualMachineError:虛擬機錯誤,當 Java 虛擬機崩潰或用盡了它繼續操作所需的資源時,拋出該錯誤。
StackOverflowError:棧內存滿了,當應用程序遞歸太深而發生堆棧溢出時,拋出該錯誤。
OutofMemoryError:堆內存滿了,因為內存溢出或沒有可用的內存提供給垃圾回收器時,Java 虛擬機無法分配一個對象,這時拋出該異常。
以上是一些常見的錯誤,在Error類中還有一些別的錯誤(參照文件Java.lang.Throwable.Error).
(2)Exception(異常)
一旦發生,可以捕獲並處理,不會導致程序終止,有時可以避免有時無法避免。
異常的分類:
1.編譯時異常(需要強制處理) 2.運行時異常(不需要強制處理)
常見的異常有:
IOException:輸入輸出流異常
FileNotFoundException:文件找不到的異常
ClassNotFoundException:類找不到的異常
DataFormatException:數據格式化異常
NoSuchFieldException:沒有匹配的屬性異常
NoSuchMethodException:沒有匹配的方法異常
SQLException:資料庫操作異常
TimeoutException:執行超時異常
常見的運行時異常:
RuntimeException:運行時異常
NullPointerException:空指針異常
:數組越界異
ClassCastException:類型轉換異常
IllegalArgumentException:非法的參數異常
InputMismatchException:輸入不匹配
以上是常見的一些異常,另外還有別的異常,參見文件:Java.lang.Throwable.Exception
既然我們常常會遇到一些異常,那我們如何來處理這些異常就是一個急需解決的事情。
(1) 如何處理編譯時異常?
方法一:將需要處理的代碼塊放在一個try...catch...中
try{
//需要處理異常的代碼
}catch(XXXException ef){
ef.printStackTrace();
}
我們方法一就是要將我們不確定的代碼放入try......catch中,先進行try一下,如果沒有異常,則不會觸發catch,沒有輸出,一旦出現異常,那麼catch就會工作,在catch中捕獲異常信息,根據異常信息進行補救措施。
如以下代碼:
從結果可以看出,我們在輸入數據的時候出現錯誤,這樣通過自定義異常能夠讓我們更直接快速的找到運行或編譯時的異常。
在上述中我們分別提到了三種throw,分別是Throwable,Throws以及throw,那麼到底三者有什麼區別?
Throwable:是指在在Java.lang包中的一個類,其包含了所有的異常和錯誤,其中類Error和Exception 是它
的子類。
Thows:是指在解決編譯時異常,將方法中異常拋給上一級,在方法後面要加Throw Exception來進行拋。
throw:是指在自定義異常時,如果方法出現異常,那麼將作為引用方法的對象拋出。即拋出異常。
希望對您有所幫助!~
⑺ Java編程中常見的錯誤有哪些
相信作為程序員的我們在對程序進行編譯過程中經常會遇到錯誤,或者在運行過程中出現錯誤,在這里主要跟大家談談經常遇到的一些異常與錯誤,以及解決辦法。
異常是指程序在編譯或運行過程出現的錯誤。
在java.lang包中Throwable包含了所有的異常。
Error (錯誤) 和Exception(異常)
(1)Error(錯誤)
一旦發生無法修復,但可以避免發生。
常見錯誤類:
IOError:I/O錯誤,當發生嚴重的I/O錯誤時,拋出此錯誤。
VirtualMachineError:虛擬機錯誤,當 Java 虛擬機崩潰或用盡了它繼續操作所需的資源時,拋出該錯誤。
StackOverflowError:棧內存滿了,當應用程序遞歸太深而發生堆棧溢出時,拋出該錯誤。
OutofMemoryError:堆內存滿了,因為內存溢出或沒有可用的內存提供給垃圾回收器時,Java 虛擬機無法分配一個對象,這時拋出該異常。
以上是一些常見的錯誤,在Error類中還有一些別的錯誤(參照文件Java.lang.Throwable.Error).
(2)Exception(異常)
一旦發生,可以捕獲並處理,不會導致程序終止,有時可以避免有時無法避免。
異常的分類:
1.編譯時異常(需要強制處理) 2.運行時異常(不需要強制處理)
常見的異常有:
IOException:輸入輸出流異常
FileNotFoundException:文件找不到的異常
ClassNotFoundException:類找不到的異常
DataFormatException:數據格式化異常
NoSuchFieldException:沒有匹配的屬性異常
NoSuchMethodException:沒有匹配的方法異常
SQLException:資料庫操作異常
TimeoutException:執行超時異常
常見的運行時異常:
RuntimeException:運行時異常
NullPointerException:空指針異常
:數組越界異
ClassCastException:類型轉換異常
IllegalArgumentException:非法的參數異常
InputMismatchException:輸入不匹配
以上是常見的一些異常,另外還有別的異常,參見文件:Java.lang.Throwable.Exception
既然我們常常會遇到一些異常,那我們如何來處理這些異常就是一個急需解決的事情。
(1) 如何處理編譯時異常?
方法一:將需要處理的代碼塊放在一個try...catch...中
try{
//需要處理異常的代碼
}catch(XXXException ef){
ef.printStackTrace();
}
我們方法一就是要將我們不確定的代碼放入try......catch中,先進行try一下,如果沒有異常,則不會觸發catch,沒有輸出,一旦出現異常,那麼catch就會工作,在catch中捕獲異常信息,根據異常信息進行補救措施。
如以下代碼:
從結果可以看出,我們在輸入數據的時候出現錯誤,這樣通過自定義異常能夠讓我們更直接快速的找到運行或編譯時的異常。
在上述中我們分別提到了三種throw,分別是Throwable,Throws以及throw,那麼到底三者有什麼區別?
Throwable:是指在在Java.lang包中的一個類,其包含了所有的異常和錯誤,其中類Error和Exception 是它
的子類。
Thows:是指在解決編譯時異常,將方法中異常拋給上一級,在方法後面要加Throw Exception來進行拋。
throw:是指在自定義異常時,如果方法出現異常,那麼將作為引用方法的對象拋出。即拋出異常。
⑻ Java中為什麼有的類實現了一個空介面,比如throwable有什麼意義
就是一個標志而已,告訴jvm實現了這個空介面的類才具有一些特定的功能。
⑼ 如何理解java.lang.Throwable
Throwable 類是 Java 語言中所有錯誤或異常的超類。只有當對象是此類(或其子類之一)的實例時,才能通過 Java 虛擬機或者 Java throw 語句拋出。類似地,只有此類或其子類之一才可以是 catch 子句中的參數類型。
⑽ throwable和Exception的區別(詳細一點)
throwable和exception的區別:
1、throwable是父類,exception是子類。
2、throwable是根基,exception是從throwable派生出來的。
3、throwable中包括exception(異常)和error(錯誤)。
4、throwable用來定義所有可以作為異常被拋出來的類,exception專指程序本身可以處理的異常,一般性的異常。
在Java程序中,所有異常對象的根基類是Throwable,Throwable從Object直接繼承而來(這是Java系統所強制要求的)。Throwable有兩個重要的子類:Exception(異常)和 Error(錯誤),二者都是 Java 異常處理的重要子類,各自都包含大量子類。
(10)javathrowable擴展閱讀:
Error(錯誤)是程序無法處理的錯誤,表示運行應用程序中較嚴重問題。大多數錯誤與代碼編寫者執行的操作無關,而表示代碼運行時JVM(Java 虛擬機)出現的問題。Exception(異常)是程序本身可以處理的異常。
Error是一種嚴重的問題,應用程序不應該捕捉它。Exception一般可能是程序和業務上的錯誤,是可以恢復的。