4.1 Java進階(一)異常處理

一、異常概述

1、異常(Exception),錯誤(Error):編碼過程或執行過程出現異常就會導致錯誤。

2、異常分類:

(1)編譯異常(checked異常)

(2)運行時異常(runtime異常)

3、Exception異常是一般異常的父異常


二、各種具體異常

1、算術異常

public class Main {
	public static void main(String[] args) {
		int num=5/0;
		System.out.println(num); //java.lang.ArithmeticException 算術異常
	}
}

2、找不到指定的類

public class Main {
	public static void main(String[] args) {
		try
		{
			Class.forName("com.mysql.jdbc.Driver");
			//java.lang.ClassNotFoundException 找不到指定的類
		} 
		catch(ClassNotFoundException e)
		{
			e.printStackTrace();
		}
	}
}

3、空指針異常

public class Main {
	@SuppressWarnings("null")
	public static void main(String[] args) {
		User user=null;  
		System.out.println(user.getUsername());
		//java.lang.NullPointerException  空指針異常
	}
}

4、數據越界

public class Main {
	public static void main(String[] args) {
		int[] num=new int[5];
		num[5]=10;
		System.out.println(num[5]);
		//java.lang.ArrayIndexOutOfBoundsException  數據越界
	}
}


三、異常處理

1、一旦方法被聲明拋出異常,那麼在使用該方法的時候就需要處理該異常

例如:



2、解決辦法:利用try、catch、finally、throws、throw

(1)繼續拋出

public class Main {
	public void goHome() throws Exception
	{
		/*
		 * throws
		 */
	}
	public static void main(String[] args) throws Exception {
		Main mi=new Main();
		mi.goHome();
	}
}

(2)利用try...catch去捕獲使用該方法是可能出現的異常

public class Main {
	public void goHome() throws Exception
	{
		/*
		 * throws
		 */
	}
	public static void main(String[] args) {
		Main mi=new Main();
		try {
			mi.goHome();
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			System.out.println("aa");
		}
	}
}

3、try...catch...finally的用法

(1)三個處理方法都不能單獨使用

(2)try...catch、try...finally可以配合使用

(3)catch...finally不能配合使用



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章