最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

一篇文章看懂Java異常處理

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

異常的定義

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

總共有三種:1.編譯錯誤 2.運行錯誤 3.邏輯錯誤

1.編譯錯誤是因為程序沒有遵循語法規(guī)則,編譯程序能夠自己發(fā)現(xiàn)并且提示我們錯誤的原因和位置,這個也是新手在剛接觸編程語言時經常遇到的問題。

2.運行時錯誤是因為程序在執(zhí)行時,運行環(huán)境發(fā)現(xiàn)了不能執(zhí)行的操作。

3.邏輯錯誤是因為程序沒有按照預期的邏輯順序執(zhí)行。異常也就是指程序運行時發(fā)生錯誤,而異常處理就是對這些錯誤進行處理和控制。

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í)行過程中遇到異常就會終止

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

異常的分類

RuntimeException:運行時異常,一般不手動處理,出問題了再處理。

其他Exception:必須要經過手動處理。

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

異常的處理方法

try…catch處理

package org.oracle.test;
import java.util.Scanner;
public class TryDemo2 {
	public static void main(String[] args) {
		System.out.println(testOne());
	}	
	/*
	 *  當try、catch、finally代碼塊中都有return語句,
	 *  程序無論報錯與否都會執(zhí)行finally里面的renturn語句
	 */
	public static double testOne() {
		try {
			Scanner sc = new Scanner(System.in);
			System.out.println("請輸入第一個數(shù)字:");
			int a = sc.nextInt();
			System.out.println("請輸入第二個數(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;
		}
	}
}

運行結果:

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

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

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

throw 和throws

throws表示方法準備要扔出來一個異常

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;
		}
	}
}

運行結果:

自定義異常

自定義異常:直接繼承Exception或者RuntimeException來是實現(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();
		}
	}

	/*
	 * 	基帝開了個情侶酒店,基帝酒店規(guī)矩:18歲以下和80歲上以上客戶,需要家人陪同入住
	 */
	public static void hotelRule() throws Exception {
		Scanner sc = new Scanner(System.in);
		System.out.println("請輸入客戶年齡:");
		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("由于年齡問題,無法入住");
	}
	
}

運行結果:

總結

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

相關文章

  • java去除空格、標點符號的方法實例

    java去除空格、標點符號的方法實例

    這篇文章主要給大家介紹了關于java去除空格、標點符號的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-09-09
  • Spring Boot application.yml配置文件示例詳解

    Spring Boot application.yml配置文件示例詳解

    本文詳細介紹了SpringBootapplication.yml配置文件的使用和配置項,通過學習本文,您應該已經掌握了如何使用application.yml文件來配置SpringBoot應用程序的不同組件,如數(shù)據源、數(shù)據庫、緩存、郵件服務等,感興趣的朋友一起看看吧
    2025-02-02
  • 自定義對象作為HashMap的Key問題

    自定義對象作為HashMap的Key問題

    這篇文章主要介紹了自定義對象作為HashMap的Key問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • Spring事務的傳播行為解析

    Spring事務的傳播行為解析

    這篇文章主要介紹了Spring事務的傳播行為解析,事務傳播行為(propagation?behavior)指的就是當一個事務方法被另一個事務方法調用時,這個事務方法應該如何運行,需要的朋友可以參考下
    2023-10-10
  • 將java普通項目打包成exe可執(zhí)行文件的步驟記錄

    將java普通項目打包成exe可執(zhí)行文件的步驟記錄

    將JAVA代碼打包為exe文件,會讓程序運行更加方便,這篇文章主要給大家介紹了關于將java普通項目打包成exe可執(zhí)行文件的相關資料,需要的朋友可以參考下
    2021-07-07
  • Java從入門到起飛之數(shù)組使用詳解

    Java從入門到起飛之數(shù)組使用詳解

    這篇文章主要介紹了Java從入門到起飛之數(shù)組使用的相關資料,包括數(shù)組的聲明、初始化、長度、索引、遍歷和默認值等內容,還介紹了Arrays工具類中常用的方法,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2025-03-03
  • Mybatis自動創(chuàng)建表和更新表結構

    Mybatis自動創(chuàng)建表和更新表結構

    這篇文章主要介紹了Mybatis自動創(chuàng)建表和更新表結構的相關資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2016-06-06
  • Java實現(xiàn)視頻時間維度剪切的工具類

    Java實現(xiàn)視頻時間維度剪切的工具類

    這篇文章主要為大家詳細介紹了將視頻按照時間維度進行剪切的Java工具類,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起了解一下
    2022-12-12
  • Java OOM 異常場景與排查過程(堆、棧、方法區(qū))

    Java OOM 異常場景與排查過程(堆、棧、方法區(qū))

    這篇文章主要介紹了Java OOM 異常場景與排查過程(堆、棧、方法區(qū)),具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-03-03
  • Java 常量與變量的區(qū)別詳細介紹

    Java 常量與變量的區(qū)別詳細介紹

    這篇文章主要介紹了Java 常量與變量的區(qū)別的相關資料,并附實例代碼幫助大家學習理解,需要的朋友可以參考下
    2016-10-10

最新評論

德清县| 兰考县| 连云港市| 天气| 甘南县| 沁水县| 武邑县| 合水县| 夹江县| 禄丰县| 湖北省| 新竹市| 德兴市| 陇南市| 浑源县| 民县| 泸西县| 兰西县| 洪泽县| 广昌县| 望城县| 射洪县| 齐齐哈尔市| 双柏县| 镇宁| 永清县| 兴隆县| 奈曼旗| 浙江省| 兴城市| 中超| 赣州市| 南康市| 龙江县| 江口县| 进贤县| 株洲市| 准格尔旗| 乌拉特后旗| 临邑县| 富裕县|