Java异常日志的查询语句_java学习异常,断言和日志
1.異常處理的任務就是將控制權從錯誤產生的地方轉移給能夠處理這種情況的錯誤處理器
2.錯誤分類
用戶輸入錯誤
設備錯誤
物理限制
代碼錯誤
3.異常分類,所有的異常都是由Throwable繼承而來,有兩個分支,Error和Exception
Error類層次結構描述類Java運行時系統的內部錯誤和資源耗盡錯誤,如果出現這樣的錯誤,除了通告給用戶,并盡力使應用程序安全的終止之外,在沒有其它辦法
Exception有兩個分支,一個分支派生于RuntimeException;另一個分支包含其它異常;劃分這兩個異常的規則是,由程序錯誤導致的異常屬于RuntimeException,而程序本身沒有問題,但由于像I/O錯誤這類問題導致的異常屬于其它異常
派生于RuntimeException的異常包含下面幾種情況
錯誤的類型轉換
數組越界訪問
訪問null指針
不是派生于RuntimeException的異常包含下面幾種情況
試圖在文件尾部后面讀取數據
試圖打開一個不存在的文件
試圖根據給定的字符串查找Class對象,而這個字符串表示的類并不存在
4.如果存在RuntimeException異常,那么一定是你的問題
5.java語言規范將派生于Error類或RuntimeException類的所有異常稱為非受查異常,其它所有的異常稱為受查異常,編譯器將會核查是否為所有的受查異常提供了異常處理器
6.方法應該在其首部聲明所有可能拋出的異常,這樣可以從首部反映出這個方法可能拋出那類受查異常
7.不必將所有可能拋出的異常都進行聲明,遇到下面四種異常應該拋出
調用一個拋出受查異常的方法
程序運行過程中發現錯誤,并且利用throw語句拋出一個受查異常
程序出現錯誤
Java虛擬機和運行時庫出現的內部錯誤
8.如果在子類中覆蓋了一個超類的方法,子類方法中聲明的受查異常不能比超類方法中聲明的異常更通用,如果超類方法中沒有拋出任何受查異常,那么子類也不能拋出任何受查異常
9.一旦方法拋出了異常,這個方法就不可能返回到調用者
10.如果某個異常發生的時候沒有在任何地方進行捕獲,那么程序就會終止運行,并在控制臺上打印出異常信息,其中包括異常的類型和堆棧的內容
11.再次拋出異常與異常鏈,在catch語句中可以拋出一個異常,這樣做的目的是改變異常的類型;也有可能是想記錄一個異常,在將它重新拋出,不做任何改變
12.如果方法中的任何代碼拋出了一個在catch子句中沒有聲明的異常類型,那么這個方法就會立刻退出
13.不管是否有異常被捕獲,finally子句都會被執行
14.try語句可以只有finally語句,而沒有catch語句
15.如果try塊拋出一個異常,finally塊中的處理也拋出一個異常,那么finally塊中的異常將會被拋出,原始的異常將會丟失;要改進的話,在finally塊中繼續拋出原異常
16.帶資源的try語句塊(這樣的語句塊在正常退出或存在異常時都會調用res.close()方法)可以很好的處理上一種情況,原來的異常會重新拋出,close()方法拋出的異常會被抑制
17.堆棧軌跡是一個方法調用過程的列表,它包含了程序執行過程中方法調用的特定位置
18.早拋出,晚捕獲
19.斷言,假設確信某個屬性符合要求,并且代碼的執行依賴于這個屬性;斷言機制允許在測試期間向代碼中插入一些檢查語句,當代碼發布時,這些插入語句的檢測語句將會被自動的移走
20.在默認情況下,斷言被禁用;在啟用或禁用斷言時不必重新編譯程序,啟用或禁用斷言時類加載器的功能
21.斷言失敗是致命的,不可恢復的錯誤,斷言檢查只用于開發和測試階段
22.記錄日志的常見用途是記錄那些不可預料的異常
總結
以上是生活随笔為你收集整理的Java异常日志的查询语句_java学习异常,断言和日志的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 产气肠杆菌是什么意思
- 下一篇: 减肥期间可以吃南瓜吗