編譯時異常:首先它的過程是在程序把他的.java的源文件編譯成字節碼文件也就是.class文件,出現的異常。java
運行時異常:運行時異常表示虛擬機的一般操做中可能遇到的異常,它意味着程序存在着bug。web
Exception分兩類 :
運行時異常,不須要強制處理 全部的RuntimeException的子類都是運行時異常
編譯時異常,須要強制處理 在Exception範圍內,除了運行時異常的類都是編譯時異常數據庫
編譯時異常和程序的上下文條件有着密切關係,即便程序設計無誤也會因爲使用問題而引起。
Java編譯器要求方法必須聲明拋出可能發生的編譯時異常,可是並不要求必須聲明拋出未被捕獲的運行時異常。數組
Exception:異常 主要是在程序運行期間發生的一些不正常事件停止了程序的運行,能夠經過JAVA異常處理機制捕獲異常並處理,使得程序正常運行下去。發生以後能夠捕獲並處理的。tomcat
一、編譯時異常:app
IOException 輸入輸出流異常
FileNotFoundException 文件找不到的異常
ClassNotFoundException 類找不到異常
DataFormatException 數據格式化異常
NoSuchFieldException 沒有匹配的屬性異常
NoSuchMethodException 沒有匹配的方法異常
SQLException 數據庫操做異常
TimeoutException 執行超時異常webapp
IOException:普遍的說,何時會有IOException ,好比你文件都不到的時候 ,你在作數據庫操做的時候數據庫底層出現問題 ,或者你係統IO出問題了 ,系統拿不到文件句柄 ,你說的讀着讀着忽然被刪了,你能夠試試,書不定真能夠 ,你能夠看有多少IOExeption個子類,差很少就有多少種類型。ide
FileNotFoundException:注意,這裏的找不到是在你的編譯結果文件夾裏面找不到,而不是在你的工程裏面找不到,不少同窗說本身工程裏面有這個文件,爲何還要報這個異常?這個時候,你最好跑到你的編譯文件放的文件夾下面,好比tomcat的webapps文件夾下面,找找你的工程對應的文件夾,看看那個裏面有沒有你的文件設計
ClassNotFoundException:屬於編譯時異常,是在classloader加載類的時候發現類不存在在類路徑的時候報出的。指針
SQLException:好比SQL語句寫錯,訪問的表不存在,鏈接數據庫失敗等。
二、運行時異常(RuntimeException):
ArrayIndexOutofBoundsException 數組越界異常 ClassCastException 類型轉換異常 NullPointerException 空指針異常 IllegalAccessException 非法的參數異常 InputMismatchException 輸入不匹配異常