java中的异常处理语句_Java中实现异常处理的基础知识
Java中實現異常處理的基礎知識
異常?(Exception):發生于程序執行期間,表明出現了一個非法的運行狀況。許多JDK中的方法在檢測到非法情況時,都會拋出一個異常對象。
例如:數組越界和被0除。
源代碼示例:
packageyanzheng;
//關于異常??2015.11.11
importjavax.swing.*;
public?classAboutException?{
public?static?voidmain(String[]args)
{
int?i=1,j=0,k;
//???k=i/j;????//此句會拋出異常,顯示被0除
try
{
k=i/j;//?Causes?division-by-zero?exception
//throw?new?Exception("Hello.Exception!");
}
catch(?ArithmeticExceptione)//捕獲類型為算術異常,捕獲對象為e,算數異常就比如被0除這種情況
{
System.out.println("被0除.??"+e.getMessage());
//e.getMessage()這句是包中的一個類,去掉也行
}
/*Exception為所有的異常類型.使用catch語句,只能捕獲Exception類及其子類的對象。
因此,一個捕獲Exception對象的catch語句塊可以捕獲所有“可捕獲”的異常。*/
catch(Exceptione)
{
if(e?instanceofArithmeticException)
//instanceof為如果e可轉換為ArithmeticException這種類型
System.out.println("被0除");
else
{
System.out.println(e.getMessage());
}
}
finally//finally語句會被執行
{
JOptionPane.showConfirmDialog(null,"OK");
}
}
}
異常處理的目的是依據實際情況提供不同的錯誤應對策略與手段,使程序更穩定,更安全。
異常處理的主要用途是提供準確的錯誤消息,解釋失敗的原因、位置和錯誤類型等,同時提供一定的恢復能力,盡可能地保證數據完整性不被破壞,并讓程序能繼續運行。
Java中的異常捕獲語句
Java?中所有可捕獲的異常都派生自?Exception?類。
使用Java異常處理機制
*把可能會發生錯誤的代碼放進try語句塊中。
*當程序檢測到出現了一個錯誤時會拋出一個異常對象。異常處理代碼會捕獲并處理這個錯誤。catch語句塊中的代碼用于處理錯誤。
*當異常發生時,程序控制流程由try語句塊跳轉到catch語句塊。
*不管是否有異常發生,finally語句塊中的語句始終保證被執行。
*如果沒有提供合適的異常處理代碼,JVM將會結束掉整個應用程序。
JDK中與異常相關的類
Java中的異常分類
Throwable類有兩個直接子類:
Exception:出現的問題是可以被捕獲的;
Error:系統錯誤,通常由JVM處理。
可捕獲的異常又可以分為兩類:
(1)check異常:直接派生自Exception的異常類,必須被捕獲或再次聲明拋出
(2)runtime異常:派生自RuntimeException的異常類。使用throw語句可以隨時拋出這種異常對象:
throw?new?ArithmeticException(…);
異常的“多態”特性
*可以有多個catch語句塊,每個代碼塊捕獲一種異常。在某個try塊后有兩個不同的catch塊捕獲兩個相同類型的異常是語法錯誤。
*使用catch語句,只能捕獲Exception類及其子類的對象。因此,一個捕獲Exception對象的catch語句塊可以捕獲所有“可捕獲”的異常。
*將catch(Exception?e)放在別的catch塊前面會使這些catch塊都不執行,因此Java不會編譯這個程序。
“finally”的功用
*資源泄露:當一個資源不再被某應用程序使用,但此程序并未向系統聲明不再使用此資源時發生這種情況
*finally語句塊主要用于解決資源泄露問題,它位于catch語句塊之后,JVM保證它們一定執行。
*注意:finally語句塊中也可能發生異常,如果這種情況發生,先前的異常被放棄。
總結
以上是生活随笔為你收集整理的java中的异常处理语句_Java中实现异常处理的基础知识的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux dns中文域名,Linux
- 下一篇: mysql视图存储_Mysql 视图、存