java的異常總結

異常:在java程序中也出現不正常的狀況,這個就叫異常。java是面向對象的語言。任何事物均可以用類來描述,一樣異常也是一種事物,java中提供了不少異常類java

不少異常堆積起來叫作異常體系jvm

 

Throwable -------------全部異常的父類學習

         --------------error對象

         --------------exception繼承

類的完整的名稱: 包名 +類名內存

1.toString()//對throwable 的簡短描述    類的完整的名稱 message的信息也會打印出來資源

2.getMessage()  //throwable的詳細信息字符串字符串

3.printStrackTrace  //打印的是異常時棧內存get

Error  錯誤虛擬機

錯誤通常是java虛擬機或者硬件致使的問題,因此咱們通常不會用代碼來處理錯誤

 

Exception  全部的異常都繼承與Exception

異常和錯誤的區別:

若是程序出現不正常的狀況,信息的結尾是以Error就是錯誤,其餘的都是異常

 

異常的處理:

方式1:捕獲處理

捕獲處理的格式:

Try(){

   可能發生的異常的代碼

}catch(捕獲的異常的類型  變量名){

異常的處理

}

捕獲異常處理的注意點:

  1. 若是try中的代碼處理問題以後,會繼續執行try-catch之外的代碼
  2. Catch中的代碼,只有在try中的代碼出現異常時纔會執行
  3. 一個try中能夠跟多個catch塊,也就是說一個try能夠處理多個異常
  4. Try捕獲異常是從小到大來捕獲異常的,不然就會報錯

 

異常捕獲到底有什麼用?

目前還看不出用處,在學習javaEE就頗有用

爲何不直接用一個大的異常?

爲了讓咱們快速的找到錯誤點

 

 

方式2:拋出處理(throw  throws)

Throw,throws使用注意點:

  1. Throw關鍵字是用於方法裏面的,throws用於方法的聲明上
  2. Throw關鍵字用於方法內部拋出異常,throws用於方法聲明上拋出異常
  3. Throw關鍵字後面只能有一個異常,throws能夠聲明多個異常

拋出異常使用的注意點:

  1. 若是在方法中拋出了一個異常對象,就必須在方法上聲明這個異常的拋出
  2. 若是一個方法調用了拋出異常的方法,那麼這個調用者就必須處理這個拋出的異常(調用者能夠是調用這個方法的方法和jvm虛擬機)
  3. 若是一個方法中拋出了異常,那麼throw後面的代碼就不會再執行了
  4. 在一種狀況下只能拋出一種異常

何時拋出異常?何時不拋?

須要通知你的調用者,你的代碼可能存在問題,這個時候就須要拋出異常

若是你的代碼是直接和用戶打交道的時候遇到以遇到異常,就須要本身處理

 

有時候異常必須聲明,有時候能夠不聲明

Exception

  --------》運行時異常:拋出運行時異常,是能夠不用在方法上聲明異常

  -------》編譯時異常:拋出編譯時異常,方法上必須聲明異常,調用者也必需要處理

 

如何區分編譯時和運行時異常:

屬於運行時異常:是RuntimeException 或者繼承與他的子類的都是運行時異常

屬於編譯時異常:除了運行時異常,其餘的都是編譯時異常(最大的異常Exception(異常超類)是編譯時異常)

 

Finally   塊

Finally 塊 和try 一塊兒用

Finally:不管出了什麼問題,finally中的代碼塊都會執行,除非jvm退出了,代碼纔不會執行

Finally 很是適合作資源釋放的工做,這樣就能夠保證我這資源文件在任什麼時候候均可以被釋放

 

 

Java中的包:至關於電腦中的文件夾

包:能夠將編譯的class文件放入到指定的包中

定義包:

Package  關鍵字定義包

不一樣的包中類與類之間的訪問注意點:

  1. 類須要用public修飾
  2. 被訪問的類要先編譯出來
  3. 在其餘類中使用其餘類須要用到類 的全名

能夠用導包來解決問題3

導包用關鍵字:import

導包格式:

Import 包名1 . 包名2……類名;

Import 包名 . *; 直接導入全部

推薦使用第一種導包方法

使用包的好處:

  1. 能夠防止同名的的類文件的衝突
  2. 使原文件與編譯後的文件分離,便於軟件的發佈

使用包注意點:

  1. 一個java類中只能定義一個包
  2. 包的定義是類描述的第一個語句
相關文章
相關標籤/搜索