JAVA_SE基礎知識——異常及異常處理

1.異常的發生

異常不是一定會發生的,是可能會發生

2、異常

異常是指在程序的運行過程中所發生的不正常的事件,它會中斷正在運行的程序

3、java本身對異常的處理

java編程語言使用異常處理機制爲程序提供了錯誤處理的能力
程序中預先設置好對付異常的處理辦法,在程序運行中發現異常時,對異常進行處理,異常處理完畢後程序繼續運行。

4、java中的異常處理的5個關鍵字

try  catch  finally  throws  throw
try:執行可能產生異常的代碼
catch:捕獲異常
finally:無論是否發生異常,代碼總能執行
throws:聲明異常,聲明方法可能要拋出的各種異常
throw:拋出異常,   常

5、try、catch塊捕獲異常三種情況:

1、正常
  try中的代碼塊不會產生異常,則執行try-catch塊後的代碼塊
2、出現異常
  try中代碼塊中有產生異常的代碼段,從該代碼段直接跳入catch
中對異常類型匹配,匹配完成,程序繼續執行
  e.printStackTrace();//打印出現異常的堆棧信息,異常出現的結果和位置
3、異常類型不匹配
  try塊中有產生異常的代碼段,跳入catch塊中尋找發現異常類型不匹配,程序
中斷運行

try塊不能單獨存在,與catch塊一起使用,一個try塊可以有多個catch 

6、在catch塊中處理異常

a、加入用戶自定義處理信息:System.err.println("除數不能爲0")
b、調用方法輸出異常信息:e.printStackTrace();

異常對象常用的方法:
	void printStackTrace();//輸出異常的堆棧信息
	String getMessage();//返回異常信息描述的字符串,是
	   printStackTrace()輸出信息的一部分

7、常見的異常類型:

Exception	所有異常的父類
ArithmeticException	算術錯誤異常,如以零作爲除數
ArrayIndexOutOfBoundsException	數組下標越界
NullPointerException	空指針異常
ClassNotFoundException	不能加載所需要的類
IllegalArgumentException	非法參數
ClassCastException	對象強轉格式錯誤
NumberFormatException	數字格式轉換異常,如把"abc"轉換成數字

8、finally塊中不執行的唯一情況:

在catch塊中寫 System.exit(1);//中斷程序,退出java虛擬機,不執行finally塊
“0”表示正常退出程序,“1”或非零表示非正常退出程序	

9、存在return的try-catch-finally塊

try中發現異常-->產生異常對象-->異常類型匹配-->進入catch塊-->執行finally塊
  最後在執行 return退出方法

10、多重catch塊

排列catch語句的順序:先子類後父類
發生異常時按順序逐個匹配
只執行第一個與異常類型匹配的catch語句

11、異常的倆種方式

    聲明異常 throws Exception      方法體外,多個異常用逗號隔開
    拋出異常 throw new Exception();     方法體裏

	處理時:繼續聲明異常或者使用try-catch塊處理異常
		main方法聲明的異常由java虛擬機處理

12、 Error與Exception

              Error:僅靠程序本身無法恢復的嚴重錯誤
	  |
Throwable-
	  |
	   Exception:由java程序拋出或處理的非嚴重錯誤
			
Exception包括運行時異常和檢查異常;運行時異常,編譯正常,運行時可能出錯 
  不要求程序必須做出處理; 運行異常,編譯都不能通過,程序必須處理該類異常。
檢查異常:ClassNotFoundException; SQLException
運行時異常: ArithmeticException;NullPointerException;NumberFormatException

13、開源的日誌記錄工具—log4j

日誌:主要用來記錄系統運行中一些重要操作信息
      便於監視系統運行情況,幫助用戶提前發現和避開可能出現的問題,或者出現問題
    後根據日誌找到原因

日誌分類:SQL日誌,異常日誌,業務日誌

log4j是開源日誌記錄工具:
	控制日誌的輸出級別
	控制日誌信息輸送的目的地是控制檯、文件等
	控制每一條日誌的輸出格式

使用log4j的步驟:a、在項目中加入log4j的JAR文件
		b、創建log4j.properties文件
		c、配置日誌文件
		d、使用log4j記錄日誌信息

輸出級別:fatal>error>warn>infor>debug

在方法外面建立一個日誌對象:初始化
    private static Logger myLog=Logger.getLogger(Case1.class.getName());
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章