java测试类和类_【测试开发】从测试角度看Java异常类(错误和异常区别介绍)
在 Java 中,所有的異常都有一個共同的祖先 Throwable(可拋出)。Throwable 指定代碼中可用異常傳播機制通過 Java 應用程序傳輸的任何問題的共性。
Throwable 有兩個重要的子類:Exception(異常)和 Error(錯誤),二者都是 Java 異常處理的重要子類,各自都包含大量子類。
①.Exception(異常)是應用程序中可能的可預測、可恢復問題。一般大多數異常表示中度到輕度的問題。異常一般是在特定環境下產生的,通常出現在代碼的特定方法和操作中。在 Input 類中,當試圖調用 readLine 方法時,可能出現 IOException 異常。
Exception 類有一個重要的子類 RuntimeException。RuntimeException 類及其子類表示“JVM 常用操作”引發的錯誤。例如,若試圖使用空值對象引用、除數為零或數組越界,則分別引發運行時異常(NullPointerException、ArithmeticException)和 ArrayIndexOutOfBoundException。
②.Error(錯誤)表示運行應用程序中較嚴重問題。大多數錯誤與代碼編寫者執行的操作無關,而表示代碼運行時JVM(Java 虛擬機)出現的問題。例如,當 JVM 不再有繼續執行操作所需的內存資源時,將出現不受檢查異常和受檢查異常的劃分
Java中的異常分為兩大類:
1.Checked Exception(非Runtime Exception)
2.Unchecked Exception(Runtime Exception)
運行時異常
RuntimeException類是Exception類的子類,它叫做運行時異常,Java中的所有運行時異常都會直接或者間接地繼承自RuntimeException類。
Java中凡是繼承自Exception,而不繼承自RuntimeException類的異常都是非運行時異常。一個try后面可以跟多個catch,但不管多少個,最多只會有一個catch塊被執行。對于非運行時異常(checked exception),必須要對其進行處理,否則無法通過編譯。
處理方式有兩種:
1.使用try..catch..finally進行捕獲;
2.在產生異常的方法聲明后面寫上throws 某一個Exception類型,如throws Exception,將異常拋出到外面一層去。
對于運行時異常(runtime exception),可以對其進行處理,也可以不處理。推薦不對運行時異常進行處理。
擴展:錯誤和異常的區別(Error vs Exception)
1).java.lang.Error: Throwable的子類,用于標記嚴重錯誤。合理的應用程序不應該去try/catch這種錯誤。絕大多數的錯誤都是非正常的,就根本不該出現的。
java.lang.Exception: Throwable的子類,用于指示一種合理的程序想去catch的條件。即它僅僅是一種程序運行條件,而非嚴重錯誤,并且鼓勵用戶程序去catch它。
2).Error和RuntimeException及其子類都是未檢查的異常(unchecked exceptions)而所有其他Exception類都是檢查了的異常(checked exceptions)。
checked exceptions:通常是從一個可以恢復的程序中拋出來的,并且最好能夠從這種異常中使用程序恢復。比如FileNotFoundException, ParseException等。檢查了的異常發生在編譯階段,必須要使用try…catch(或者throws)否則編譯不通過。
unchecked exceptions:通常是如果一切正常的話本不該發生的異常,但是的確發生了。發生在運行期,具有不確定性,主要是由于程序的邏輯問題所引起的。比如ArrayIndexOutOfBoundException, ClassCastException等。從語言本身的角度講,程序不該去catch這類異常,雖然能夠從諸如RuntimeException這樣的異常中catch并恢復,但是并不鼓勵終端程序員這么做,因為完全沒要必要。因為這類錯誤本身就是bug,應該被修復,出現此類錯誤時程序就應該立即停止執行。 因此,面對Errors和unchecked exceptions應該讓程序自動終止執行,程序員不該做諸如try/catch這樣的事情,而是應該查明原因,修改代碼邏輯。
RuntimeException:RuntimeException體系包括錯誤的類型轉換、數組越界訪問和試圖訪問空指針等等。
處理RuntimeException的原則是:如果出現 RuntimeException,那么一定是程序員的錯誤。例如,可以通過檢查數組下標和數組邊界來避免數組越界訪問異常。其他(IOException等等)checked異常一般是外部錯誤,例如試圖從文件尾后讀取數據等,這并不是程序本身的錯誤,而是在應用環境中出現的外部錯誤。
總結
以上是生活随笔為你收集整理的java测试类和类_【测试开发】从测试角度看Java异常类(错误和异常区别介绍)的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 《黑袍纠察队》第三季发布幕后排练照 布彻
- 下一篇: 招行信用卡金卡申请条件 办金卡必看攻略
