首頁 > Java > Java入門 > 主體

java中的異常如何處理

王林
發布: 2020-07-31 16:11:44
轉載
2625 人瀏覽過

java中的異常如何處理

異常的處理分為消極的處理(自己處理不了,就往調用它的地方上拋throws,異常沒有解決,只是拋出)和積極處理(異常捕獲,捕捉異常透過try-catch語句或try-catch-finally語句實現)。

(推薦教學:java入門教學

負面的處理:

語法:

public void m1() throws 异常类名1,异常类名2{}
登入後複製

允許編譯通過。

當上拋的異常為非運行(已檢查)時異常時,呼叫此方法的呼叫者必須處理。

當上拋的例外狀況為運行(未檢查)時異常時,可以處理可以不處理。

積極的處理:(異常捕獲)

將異常直接捕獲,並且做出處理。

語法:

try{
	  //异常代码
	}catch(异常类名 引用名){  

		//当异常产生执行的代码
	}
登入後複製

try 後的catch程式碼區塊只能符合成功一個。

catch後宣告的異常為父類別時,它能夠捕捉的異常為它本身 所有子類別異常(多態的體現)。

注意:catch程式碼區塊擷取異常時,子類別異常必須定義在父類別異常前面,否則會編譯出錯。

(影片教學推薦:java影片教學

finally程式碼區塊:一定會執行此程式碼區塊中的程式碼,常用來關閉資源。

	try{
	
	}catch(){
	
	}finally{
		//无论是否产生异常,一定会去执行的代码
	}
登入後複製

注意:finally程式碼區塊中不要定義return語句。

範例:

package work;

import java.io.EOFException;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.sql.SQLException;
import java.util.Scanner;

/**
 * @author 超伟
 * @date 2019年5月13日  
 * @version 1.0.0  
 */
public class t4 {
	public static void main(String[] args) {
		System.out.println("main1");
		int n;
		Scanner sc = new Scanner(System.in);
		n = sc.nextInt();
		ma(n);
		System.out.println("main2");
	}
	public static void ma(int n){
		try {
			System.out.println("m1");
			mb(n);
			System.out.println("m2");
		} catch (EOFException e) {
			//e.printStackTrace();
			System.out.println("EOFException    ");
		} catch (IOException e) {
			System.out.println("IOException e111");
		}catch (SQLException e) {
			System.out.println("SQLException");
		}catch (Exception e) {
			System.out.println("Exception");
		}finally{
			System.out.println("in finally");
		}
	}
	
	public static void mb(int n) throws Exception {
		System.out.println("mb1");
		if (n==1) {
			throw new EOFException();
		}
		if (n==2) {
			throw new FileNotFoundException();
		}
		if (n==3) {
			throw new SQLException();
		}
		if (n==4) {
			throw new NullPointerException();
		}
		System.out.println("mb2");
	}	
}
程序运行结果为:
main1
1
m1
mb1
EOFException    
in finally
main2
登入後複製

以上是java中的異常如何處理的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:csdn.net
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板