Java異常處理的五個關(guān)鍵字

異常:異常有的是因為用戶錯誤引起,有的是程序錯誤引起的,還有其它一些是因為物理錯誤引起的。

目前創(chuàng)新互聯(lián)已為近千家的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)絡(luò)空間、網(wǎng)站改版維護(hù)、企業(yè)網(wǎng)站設(shè)計、改則網(wǎng)站維護(hù)等服務(wù),公司將堅持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。

異常處理關(guān)鍵字:try、catch、finally、throw、throws

注意事項:

  1. 錯誤不是異常,而是脫離程序員控制的問題。
  2. 所有的異常類是從 java.lang.Exception 類繼承的子類。
  3. 異常類有兩個主要的子類:IOException 類和 RuntimeException 類。
  4. Java有很多的內(nèi)置異常類。

異常大致分類:

  1. 用戶輸入了非法數(shù)據(jù)。
  2. 要打開的文件不存在。
  3. 網(wǎng)絡(luò)通信時連接中斷,或者JVM內(nèi)存溢出。

語法:

try{
//需要監(jiān)聽的代碼塊
}
catch(異常類型 異常名稱/e){
//對捕獲到try監(jiān)聽到的出錯的代碼塊進(jìn)行處理
throw 異常名稱/e; //thorw表示拋出異常
throw new 異常類型(“自定義”);
}

finally{
//finally塊里的語句不管異常是否出現(xiàn),都會被執(zhí)行
}
修飾符 返回值 方法名 () throws 異常類型{ //throws只是用來聲明異常,是否拋出由方法調(diào)用者決定
//代碼塊
}

代碼例子:(try與catch與finally)

public class ExceptionTest {
	public static void main(String[] args) {
		Scanner input=new Scanner(System.in); 
    try{ //監(jiān)聽代碼塊 
    int a=input.nextInt(); 
    int b=input.nextInt(); 
    double sum=a/b;  
    System.out.println(sum); 
    } 
    catch(InputMismatchException e){ 
      System.out.println("只能輸入數(shù)字"); 
    } 
    catch(ArithmeticException e){ 
      System.out.println("分母不能為0"); 
    } 
    catch(Exception e){ //Exception是所有異常的父類 
      System.out.println("發(fā)生了其他異常"); 
    } 
    finally{ //不管是否出現(xiàn)異常,finally一定會被執(zhí)行 
      System.out.println("程序結(jié)束"); 
    } 
	}
}

代碼例子:(throw關(guān)鍵字)

import java.util.InputMismatchException;
import java.util.Scanner;

public class ExceptionTest {
	public static void main(String[] args) {
		Scanner input=new Scanner(System.in); 
    try{ //監(jiān)聽代碼塊 
    int a=input.nextInt(); 
    int b=input.nextInt(); 
    double sum=a/b;  
    System.out.println(sum); 
    } 
    catch(InputMismatchException e){ //catch(異常類型 異常名稱) 
      System.out.println("只能輸入數(shù)字"); 
      throw e; //拋出catch捕捉到的異常 
      //throw new InputMismatchException(); 同上 
    } 
    catch(ArithmeticException e){ 
      System.out.println("分母不能為0"); 
      throw new ArithmeticException("分母為0拋出異常"); //拋出ArithmeticException異常 
    } 
    catch(Exception e){ //Exception是所有異常的父類 
      System.out.println("發(fā)生了其他異常"); 
    } 
    finally{ //不管是否出現(xiàn)異常,finally一定會被執(zhí)行 
      System.out.println("程序結(jié)束"); 
    }  
	}
}

代碼例子:(throws)

public class Throws {
	int a=1;
	int b=0;
	public void out() throws ArithmeticException{ //聲明可能要拋出的異常,可以有多個異常,逗號隔開
		try{ //監(jiān)聽代碼塊
		int sum=a/b;
		System.out.println(sum);
		}
		catch(ArithmeticException e){
			System.out.println("分母不能為0");
		}
		finally{ //不管是否出現(xiàn)異常,finally一定會被執(zhí)行
			System.out.println("程序結(jié)束");
		}
	}
	public static void main(String[] args){
		Throws t=new Throws();
			t.out(); //調(diào)用方法
			throw new ArithmeticException("分母為0拋出異常"); //由調(diào)用的方法決定是否要拋出異常
			/*
			 * 第二種拋出方式
			 */
//			ArithmeticException a=new ArithmeticException("分母為0拋出異常");
//			throw a;
	}
}

標(biāo)題名稱:Java異常處理的五個關(guān)鍵字
本文網(wǎng)址:http://bm7419.com/article2/jdsdoc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供用戶體驗、ChatGPT、網(wǎng)站制作、動態(tài)網(wǎng)站、標(biāo)簽優(yōu)化、建站公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

營銷型網(wǎng)站建設(shè)