Java核心类库篇5——异常
生活随笔
收集整理的這篇文章主要介紹了
Java核心类库篇5——异常
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Java核心類庫篇5——異常
- java.lang.Throwable類是Java語言中錯誤(Error)和異常(Exception)的超類
- 其中Error類主要用于描述Java虛擬機無法解決的嚴重錯誤,通常無法編碼解決,如:JVM掛掉了 等
- 其中Exception類主要用于描述因編程錯誤或偶然外在因素導致的輕微錯誤,通常可以編碼解決, 如:0作為除數等
1、Error
2、Exception
2.1、異常分類
2.1.1、Checked Exception
可檢查的異常,這是編碼時非常常用的,所有checked exception都是需要在代碼中處理的。它們的發生是可以預測的,正常的一種情況,可以合理的處理。比如IOException,或者一些自定義的異常。除了RuntimeException及其子類以外,都是checked exception。
2.1.2、Unchecked Exception
RuntimeException及其子類都是unchecked exception。比如NPE空指針異常,除數為0的算數異常ArithmeticException等等,這種異常是運行時發生,無法預先捕捉處理的。Error也是unchecked exception,也是無法預先處理的。
2.2、異常的處理
2.2.1、try…catch
try {// 程序代碼 }catch(ExceptionName e1) {//Catch 塊 }finally {//最后一定執行的代碼 }當需要編寫多個catch分支時,切記小類型應該放在大類型的前面
2.2.2、拋出
在某些特殊情況下有些異常不能處理或者不便于處理時,就可以將該異常轉移給該方法的調用者, 這種方法就叫異常的拋出
public void show() throws IOException{}- 子類重寫的方法不能拋出更大的異常、不能拋出平級不一樣的異常,但可以拋出一樣的異常、更小 的異常以及不拋出異常
- 若父類中被重寫的方法沒有拋出異常時,則子類中重寫的方法只能進行異常的捕獲處理
- 若一個方法內部又以遞進方式分別調用了好幾個其它方法,則建議這些方法內可以使用拋出 的方法處理到最后一層進行捕獲方式處理
3、自定義異常
public class NameException extends Exception {public NameException() {super();}public NameException(String message) {super(message);} } public class Person {private String name;public Person() {}public Person(String name) throws NameException {setName(name);}public String getName() {return name;}public void setName(String name) throws NameException {if (name.length()<0||name.length()>10){throw new NameException("姓名長度過長");}this.name = name;}@Overridepublic String toString() {return "Person{" +"name='" + name + '\'' +'}';} } public class Test {public static void main(String[] args) throws NameException {Person person = new Person("zhangsanlisiwangwu");System.out.println(person);} }總結
以上是生活随笔為你收集整理的Java核心类库篇5——异常的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python 排序 -- sort()、
- 下一篇: Numpy 排序 -- sort()、a