欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

一篇文章看懂Java異常處理

 更新時(shí)間:2021年11月19日 12:47:15   作者:weixin_51178129  
異常是程序中的一些錯(cuò)誤,但并不是所有的錯(cuò)誤都是異常,并且錯(cuò)誤有時(shí)候是可以避免的,這篇文章主要給大家介紹了關(guān)于Java異常處理的相關(guān)資料,需要的朋友可以參考下

異常的定義

在java中,異常就是java在編譯、運(yùn)行或運(yùn)行過(guò)程中出現(xiàn)的錯(cuò)誤

總共有三種:1.編譯錯(cuò)誤 2.運(yùn)行錯(cuò)誤 3.邏輯錯(cuò)誤

1.編譯錯(cuò)誤是因?yàn)槌绦驔](méi)有遵循語(yǔ)法規(guī)則,編譯程序能夠自己發(fā)現(xiàn)并且提示我們錯(cuò)誤的原因和位置,這個(gè)也是新手在剛接觸編程語(yǔ)言時(shí)經(jīng)常遇到的問(wèn)題。

2.運(yùn)行時(shí)錯(cuò)誤是因?yàn)槌绦蛟趫?zhí)行時(shí),運(yùn)行環(huán)境發(fā)現(xiàn)了不能執(zhí)行的操作。

3.邏輯錯(cuò)誤是因?yàn)槌绦驔](méi)有按照預(yù)期的邏輯順序執(zhí)行。異常也就是指程序運(yùn)行時(shí)發(fā)生錯(cuò)誤,而異常處理就是對(duì)這些錯(cuò)誤進(jìn)行處理和控制。

package org.oracle.test;

public class TryDemo9 {
    public static void main(String[] args) {
    	        System.out.println(1/0);//0不能做除數(shù)
    	  
    	        System.out.println("你好");//程序捕獲異常,程序終止,不執(zhí)行
    }
}

在代碼執(zhí)行過(guò)程中遇到異常就會(huì)終止

運(yùn)行的結(jié)果里會(huì)告訴我們異常的類型,異常出現(xiàn)的位置

異常的分類

RuntimeException:運(yùn)行時(shí)異常,一般不手動(dòng)處理,出問(wèn)題了再處理。

其他Exception:必須要經(jīng)過(guò)手動(dòng)處理。

Error:一般指的是系統(tǒng)級(jí)錯(cuò)誤。

異常的處理方法

try…catch處理

package org.oracle.test;
import java.util.Scanner;
public class TryDemo2 {
	public static void main(String[] args) {
		System.out.println(testOne());
	}	
	/*
	 *  當(dāng)try、catch、finally代碼塊中都有return語(yǔ)句,
	 *  程序無(wú)論報(bào)錯(cuò)與否都會(huì)執(zhí)行finally里面的renturn語(yǔ)句
	 */
	public static double testOne() {
		try {
			Scanner sc = new Scanner(System.in);
			System.out.println("請(qǐng)輸入第一個(gè)數(shù)字:");
			int a = sc.nextInt();
			System.out.println("請(qǐng)輸入第二個(gè)數(shù)字:");
			int b = sc.nextInt();
			int result = a / b;
//			System.out.println("result:" + result);
			System.out.println("執(zhí)行了try塊");
			return result;		
		}catch (Exception e) {
			e.printStackTrace();
			return 0;
		}finally {
			return -1000;
		}
	}
}

運(yùn)行結(jié)果:

try-- 用于監(jiān)聽。將要被監(jiān)聽的代碼(可能拋出異常的代碼)放在try語(yǔ)句塊之內(nèi),當(dāng)try語(yǔ)句塊內(nèi)發(fā)生異常時(shí),異常就被拋出。

catch-- 用于捕獲異常。catch用來(lái)捕獲try語(yǔ)句塊中發(fā)生的異常。

finally-- finally語(yǔ)句塊總是會(huì)被執(zhí)行。它主要用于回收在try塊里打開的物力資源(如數(shù)據(jù)庫(kù)連接、網(wǎng)絡(luò)連接和磁盤文件)。

throw 和throws

throws表示方法準(zhǔn)備要扔出來(lái)一個(gè)異常

throw表示向外拋出異常

package org.oracle.test;

import java.util.InputMismatchException;

public class TryDemo8 {
	public static void main(String[] args) {
		try {
			testThree();
		} catch (Exception e) {
			System.out.println(e.getMessage());
			e.printStackTrace();
		}
	}
	public static void testOne() throws InputMismatchException{
		throw new InputMismatchException();
	}
	public static void testTwo() throws Exception {
		try {
			testOne();
		} catch (InputMismatchException e) {
			throw new Exception("新異常1",e);
		}
	}

	public static void testThree() throws Exception {
		try {
			testTwo();
		} catch (Exception e) {
			Exception e1 = new Exception("新異常2");
			e1.initCause(e);
			throw e1;
		}
	}
}

運(yùn)行結(jié)果:

自定義異常

自定義異常:直接繼承Exception或者RuntimeException來(lái)是實(shí)現(xiàn)自定義異常

package org.oracle.test;

import java.util.Scanner;

public class TryDemo6 {

	public static void main(String[] args){
		try {
			hotelRule();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	/*
	 * 	基帝開了個(gè)情侶酒店,基帝酒店規(guī)矩:18歲以下和80歲上以上客戶,需要家人陪同入住
	 */
	public static void hotelRule() throws Exception {
		Scanner sc = new Scanner(System.in);
		System.out.println("請(qǐng)輸入客戶年齡:");
		int age = sc.nextInt();
		if(age < 18 || age > 80) {
			throw new HotelException();
		}else {
			System.out.println("成功入住");
		}
	}

}

package org.oracle.test;
/*
 * 自定義異常需繼承Exception
 */
public class HotelException extends Exception{

	public HotelException() {
		super("由于年齡問(wèn)題,無(wú)法入住");
	}
	
}

運(yùn)行結(jié)果:

總結(jié)

到此這篇關(guān)于Java異常處理的文章就介紹到這了,更多相關(guān)Java異常處理內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • jcl與jul?log4j1?log4j2?logback日志系統(tǒng)機(jī)制及集成原理

    jcl與jul?log4j1?log4j2?logback日志系統(tǒng)機(jī)制及集成原理

    這篇文章主要介紹了jcl與jul?log4j1?log4j2?logback的集成原理,Apache?Commons-logging?通用日志框架與日志系統(tǒng)的機(jī)制,有需要的朋友可以借鑒參考下
    2022-03-03
  • Java數(shù)據(jù)結(jié)構(gòu)之棧的線性結(jié)構(gòu)詳解

    Java數(shù)據(jù)結(jié)構(gòu)之棧的線性結(jié)構(gòu)詳解

    從數(shù)據(jù)結(jié)構(gòu)上看棧和隊(duì)列都是線性表,不過(guò)是兩種特殊的線性表,棧只允許在的一端進(jìn)行插人或刪除操作,而隊(duì)列只允許在表的一端進(jìn)行插人操作、而在另一端進(jìn)行刪除操作,這篇文章主要給大家介紹了關(guān)于Java數(shù)據(jù)結(jié)構(gòu)之棧的線性結(jié)構(gòu)的相關(guān)資料,需要的朋友可以參考下
    2021-08-08
  • Java使用IO流實(shí)現(xiàn)音頻的剪切和拼接

    Java使用IO流實(shí)現(xiàn)音頻的剪切和拼接

    這篇文章主要為大家詳細(xì)介紹了Java使用IO流實(shí)現(xiàn)音頻的剪切和拼接,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • Spring Boot Maven Plugin打包異常解決方案

    Spring Boot Maven Plugin打包異常解決方案

    這篇文章主要介紹了Spring Boot Maven Plugin打包異常解決方案,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-11-11
  • 淺談為什么同一個(gè)java文件只能有一個(gè)public類

    淺談為什么同一個(gè)java文件只能有一個(gè)public類

    這篇文章主要介紹了淺談為什么同一個(gè)java文件只能有一個(gè)public類,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • Java實(shí)現(xiàn)動(dòng)態(tài)生成GIF圖像詳解

    Java實(shí)現(xiàn)動(dòng)態(tài)生成GIF圖像詳解

    在互聯(lián)網(wǎng)上有許多有趣的場(chǎng)景,其中的一種就是動(dòng)圖。這不是視頻,而是一種GIF圖像信息。本文將利用Java實(shí)現(xiàn)動(dòng)態(tài)生成GIF圖像功能,需要的可以參考一下
    2022-09-09
  • java中isEmpty和isBlank的區(qū)別小結(jié)

    java中isEmpty和isBlank的區(qū)別小結(jié)

    Java中的isEmpty和isBlank都是用來(lái)判斷字符串是否為空的方法,但在不同的情況下有所區(qū)別,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-09-09
  • spring cloud 的監(jiān)控turbine-rabbitmq的示例

    spring cloud 的監(jiān)控turbine-rabbitmq的示例

    這篇文章主要介紹了spring cloud 的監(jiān)控turbine-rabbitmq的示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-05-05
  • springboot HandlerIntercepter攔截器修改request body數(shù)據(jù)的操作

    springboot HandlerIntercepter攔截器修改request body數(shù)據(jù)的操作

    這篇文章主要介紹了springboot HandlerIntercepter攔截器修改request body數(shù)據(jù)的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。
    2021-06-06
  • SpringBoot動(dòng)態(tài)修改yml配置文件的方法詳解

    SpringBoot動(dòng)態(tài)修改yml配置文件的方法詳解

    這篇文章主要為大家詳細(xì)介紹了SpringBoot動(dòng)態(tài)修改yml配置文件的方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2022-03-03

最新評(píng)論