【從零開始學Java筆記】異常處理

2020-04-07 16:07:06來源:博客園 閱讀 ()

容器云強勢上線!快速搭建集群,上萬Linux鏡像隨意使用

【從零開始學Java筆記】異常處理

大家可以關注作者的賬號,關注從零開始學Java筆記文集。也可以根據目錄前往作者的博客園博客進行學習。本片文件將基于黑馬程序員就業班視頻進行學習以及資料的分享,并記錄筆記和自己的看法。歡迎大家一起學習和討論。

【從零開始學Java筆記】目錄

什么是異常?

異常是指不正常,我們在代碼的時候出現的編譯或者運行時的錯誤。我們在寫代碼的時候,經常的出現一些小問題, 那么為了方便我們處理這些問題,java為我們提供了異常機制。異常包含了錯誤的類型、原因以及位置
異常的體系結構:
Throwable (最項層)
Error :出現的不能夠處理的嚴重問題
Exception:可以處理的問題

異常的處理方式

1.jvm處理異常的方式:
如果出現異常我們沒有處理,jvm會幫我們進行處理,他會把異常的類型,原因還有位置顯示在命令行,并且還終止了程序,異常后面的代碼將不在執行。

2.捕獲處理
try...catch語句
格式:

 try {
  有可能出現問題的代碼;
} catch(ArithmeticException ae) {
  處理異常;
    }

try...catch的執行順序:
首先執行try語句,如果發現異常,異常下面的代碼不在執行,直接跳入catch語句中,catch語句結束后,整個try...catch結束,如果沒有發現異常,try語句執行結束后,try...catch直接結束, 不在執行catch語句

3.拋出去
當我們不想處理異常,或者沒有能力處理的時候,我們可以選擇拋出異常,誰調用方法誰處理異常,使用關鍵字throws在方法的聲明出拋出異常

舉例:

import java.io.FileWriter;
import java.io.IOException;


public class ExceptionDemo2 {
	public static void main(String[] args) throws Exception {
		//method();
		
		function();
		
	}
	
	public static void function() throws Exception {
		FileWriter fw = new FileWriter("a.txt");
	}

	private static void method() {
		try {
			System.out.println(1);
			//System.out.println(2 / 0);
			System.out.println(2);
		} catch(ArithmeticException ae) {
			System.out.println("除數不能為0");
		}
		
		System.out.println(3);
	}

}

處理多個異常

如何處理多個異常:
1.可以使用多個try.. .catch語句
2.使用一個try和多個catch

多個catch之間的順序:
多個catch之間可以有子父類
平級之間沒有順序關系
如果有子父類,父類異常必須放在后面

Throwable類

public class ExceptionDemo3 {
	public static void main(String[] args) {
		try {
			System.out.println(2 / 0);
		} catch (ArithmeticException e) {
			// String getMessage() : 原因
			// System.out.println(e.getMessage());

			// String toString() 類型和原因
			// System.out.println(e.toString());

			// void printStackTrace():類型原因和位置,和jvm處理不同,不會終止程序運行
			e.printStackTrace();
		}

		// System.out.println("hello");
	}

}

finally

finally:組合try... catch使用,用于釋放資源等收尾工作,無論try...catch語句如何執行,finally的代碼定會執行,用于處理一些收尾工作,例如釋放資源

try {
    有可能出現問題的代碼;
} catch(異常對象) {
    處理異常;
} finally {
    釋放資源;
    清理垃圾;
}

異常的分類

運行時期異常: RuntimeException的子類就是運行時期異常,在編譯時期可以自由選擇處理或者不處理
編譯時期異常:是Exception的子類,非RuntimeExcpetion的子類,在編譯時期必須處理


原文鏈接:https://www.cnblogs.com/zllk/p/12656772.html
如有疑問請與原作者聯系

標簽:順序關鍵字AE目錄文件all

版權申明:本站文章部分自網絡,如有侵權,請聯系:west999com@outlook.com
特別注意:本站所有轉載文章言論不代表本站觀點,本站所提供的攝影照片,插畫,設計作品,如需使用,請與原作者聯系,版權歸原作者所有

上一篇:【從零開始學Java筆記】IO流

下一篇:【從零開始學Java筆記】常用API

宅男午夜福利美女来袭