您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關Java中異常是什么,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
(1)異常:Java程序在運行時期發生的不正常情況。
Java就按照面向對象的思想對不正常情況進行描述和對象的封裝。
(2)異常問題分類: (Throwable:定義對于問題共性的功能。)
1.Error:由系統底層發生的,jvn告訴使用者。不做針對性處理,直接修改代碼。
2.Exception:發生并告訴使用者,可以進行針對性的處理。
(3)異常的處理情況:
1.遇到問題不進行具體的處理,繼續拋給調用者。就是在函數上通過throws關鍵字聲明異常。目的是讓調用者可以進行處理。
2.針對性的處理方式:捕獲!
try { //有可能發生異常的代碼。 } catch(異常類 變量) { //這是真正的捕獲,處理異常的代碼; } finally { //一定會被執行的代碼。 }
實際工作中,遇到的情況下不可能是非常完美的。比如:你寫的某個模塊,用戶輸入不一定符合你的要求、你的程序要打開某個文件,這個文件可能不存在或者格式不對,你要讀取數據庫的數據,數據庫可能是空的等。程序在跑的時候,內存或硬盤滿了等情況,就是異常了。
軟件在運行過程中,非常可能遇到剛剛提到的這些異常問題,我們叫異常,英文是:Exception,意思是例外。這些例外情況,或者叫異常,怎么讓我們的程序做出合理的處理。而不至于程序崩潰。
異常值程序運行中出現的不期而至的各種狀況,如:文件找不到、網絡連接失敗、非法參數等。
異常發生在程序運行期間,它影響了正常的程序執行流程。
要理解Java異常處理是如何工作的,你需要掌握一下三種異常: 異常處理框架
檢查性異常:最具代表性的檢查性異常是用戶錯誤或問題引起的異常,這是程序員無法預見的。例如要打開一個文件是,一個異常就發生了,這些異常在編譯時不能唄簡單地忽略。
運行時異常:運行時異常是可能被程序員忽略的異常。與檢查性異常相反,運行時異常可以在編譯時被避免。
錯誤 ERROR:錯誤不是異常,而是脫離程序員控制的問題。錯誤在代碼中通常被忽略。例如,當棧溢出時,一個錯誤就發生了,它們在編譯時也檢查不到。
Java 把異常當作對象來處理,并定義一個基類 java.lang.Throwable 作為所有異常的超類。
在 Java API中已經定義了許多異常類,這些異常類分為兩大類,錯誤 Error 和 異常 Exception。
Error 類對象由 Java 虛擬機生成并拋出,大多數錯誤與代碼編寫者所執行的操作無關。
Java 虛擬機運行錯誤(Virtual MachineError),當 JVM 不再有繼續執行操作所需要的內存資源時,將出現 OutOfMemoryError。這些異常發生時,Java 虛擬機(JVM)一般會選擇線程終止。
還有發生在虛擬機識圖執行應用時,如類定義錯誤(NoClassDefFoundError)、鏈接錯誤(LinkageError)。這些錯誤是不可查的,因為它們在引用程序的控制和處理能力之外,而且絕大多數是程序運行時不允許出現的狀況。
在 Exception 分支中有一個重要的子類 RuntimeException(運行時異常)
ArrayIndexOutOfBoundsException(數組下標越界)
NullPointerException(空指針異常)
ArithmeticException(算術異常)
MissingResourceException(丟失資源)
ClassNotFoundException(找不到類)
等異常,這些異常是不檢查異常不是檢查性異常,程序中可以選擇捕獲處理,也可以不處理。
這些異常一般是由程序邏輯錯誤引起的,程序應該從邏輯角度盡量避免這類異常的發生。
Error 和 Exception 的區別:Error 通常是災難性的致命的錯誤,是程序無法控制和處理的,當出現這些異常時,Java 虛擬機(JVM)一般會選擇終止線程; Exception 通常情況下是可以被程序處理掉額,并且在程序中應該盡可能地去處理這些異常。
關于“Java中異常是什么”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。