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

Java自定義異常簡單示例

 更新時間:2023年04月10日 11:36:30   作者:沒白頭發(fā)的扶蘇  
使用Java內(nèi)置的異常類可以描述在編程時出現(xiàn)的大部分異常情況,除此之外用戶還可以自定義異常,下面這篇文章主要給大家介紹了關(guān)于Java自定義異常的相關(guān)資料,需要的朋友可以參考下

前言

如果程序出現(xiàn)了問題,我們沒有做任何處理,最終JVM 會做默認(rèn)的處理,處理方式有如下兩個步驟:把異常的名稱,錯誤原因及異常出現(xiàn)的位置等信息輸出在了控制臺程序停止執(zhí)行。

  • 程序從 try 里面的代碼開始執(zhí)行
  • 出現(xiàn)異常,就會跳轉(zhuǎn)到對應(yīng)的 catch 里面去執(zhí)行
  • 執(zhí)行完畢之后,程序還可以繼續(xù)往下執(zhí)行

一、異常分為哪幾種?

異常分為兩種,分別是編譯異常和運(yùn)行時異常。

編譯時異常

  • 都是Exception類及其子類
  • 必須顯示處理,否則程序就會發(fā)生錯誤,無法通過編譯

運(yùn)行時異常

  • 都是RuntimeException類及其子類
  • 無需顯示處理,也可以和編譯時異常一樣處理
package com.xxgc.chop5_2.test;
 
public class ExceptionDemo {
    public static void show4(){
        //把字符串轉(zhuǎn)換int類型
        String a="張三";
        int b=Integer.parseInt(a);//NumberF
    }
    //異常拋出
    public static void show3() throws ClassNotFoundException {
        Class.forName("Student");
    }
    public static void show2(){
        //運(yùn)行時異常:程序運(yùn)行的時候出現(xiàn)的異常,可以try
        //編譯時異常(非運(yùn)行時異常):必須try catch 或者向上拋出
        try {
            Class.forName("Student");
        }catch (ClassNotFoundException e){
            e.printStackTrace();
        }
    }
    public static void show() {
        //制造一個異常,捕獲異常,處理異常
        try{
           int []nums={1,2};
           int n=10/0;
           int a=nums[3];
        }catch (ArrayIndexOutOfBoundsException e) {
            e.printStackTrace();
            System.out.println("數(shù)組下標(biāo)出錯了");
        }catch (Exception e){
            e.printStackTrace();
            System.out.println("出錯了");
        }finally {
            //最終最后都要之心的代碼,一般完成資源釋放工作
            System.out.println("最終的?。。?);
        }
    }
 
    public static void main(String[] args) {
        //trows:向上拋出異常,拋給方法的調(diào)用者
        //show3()方法向上拋出了異常,需要main方法解決
        //1.main方法解決了
        //2.main沒解決完,繼續(xù)向上拋,jvm(Java虛擬機(jī))解決
        try {
            show3();
        } catch (ClassNotFoundException e) {
            throw new RuntimeException(e);
        }
    }
}

二、自定義異常

1.首先新建一個類

這個類是自定義異常的類,首先我們進(jìn)行繼承idea的RuntimeException,其次建立有參和無參的方法。

代碼如下(示例):

package com.xxgc.ch06.po;
 
public class MyException extends RuntimeException{
    public MyException(){
 
    }
    public MyException(String s){
        super(s);
    }
 
}

2.測試類

下面新建一個測試類,main方法和shou方法。在shou方法里定義一個int類型的a,進(jìn)入if判斷a是否異常。

代碼如下(示例):

package com.xxgc.ch06.test;
 
import com.xxgc.ch06.po.MyException;
 
public class ThrowDemo {
    public static void show(){
        //如果a>10,拋出自己的異常
        int a=13;
        if (a>10){
            try {
                throw new MyException("不能大于10");
            }catch (MyException e){
                e.printStackTrace();
                System.out.println("出錯啦!"+e.getMessage());
            }
 
 
        }
        System.out.println("扶蘇");
    }
 
    public static void main(String[] args) {
        show();
    }
}

該處使用的idea軟件。

總結(jié)

這里對文章進(jìn)行總結(jié):

以上就是今天要講的內(nèi)容,Java自定義異常需要新建一個類寫入有參無參方法,此類需要繼承idea的RuntimeException異常。下面就需要進(jìn)行測試是否會顯示。

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

com.xxgc.ch06.po.MyException: 不能大于10
    at com.xxgc.ch06.test.ThrowDemo.show(ThrowDemo.java:11)
    at com.xxgc.ch06.test.ThrowDemo.main(ThrowDemo.java:23)
出錯啦!不能大于10
扶蘇

進(jìn)程已結(jié)束,退出代碼0

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

相關(guān)文章

  • JavaIO字符操作和對象操作示例詳解

    JavaIO字符操作和對象操作示例詳解

    這篇文章主要為大家介紹了JavaIO字符操作和對象操作示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-02-02
  • 使用Vert.x Maven插件快速創(chuàng)建項(xiàng)目的方法

    使用Vert.x Maven插件快速創(chuàng)建項(xiàng)目的方法

    這篇文章主要介紹了使用Vert.x Maven插件快速創(chuàng)建項(xiàng)目的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-09-09
  • 如何在spring官網(wǎng)查找XML基礎(chǔ)配置文件

    如何在spring官網(wǎng)查找XML基礎(chǔ)配置文件

    這篇文章主要介紹了如何在spring官網(wǎng)查找XML基礎(chǔ)配置文件,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-10-10
  • Java最全文件操作實(shí)例匯總

    Java最全文件操作實(shí)例匯總

    這篇文章主要介紹了Java最全文件操作,總結(jié)分析了大量實(shí)例,詳細(xì)匯總了Java針對文件的各種常用操作,需要的朋友可以參考下
    2015-11-11
  • web 容器的設(shè)計(jì)如何實(shí)現(xiàn)

    web 容器的設(shè)計(jì)如何實(shí)現(xiàn)

    這篇文章主要介紹了web 容器的設(shè)計(jì)如何實(shí)現(xiàn)的相關(guān)資料,本文旨在介紹如何設(shè)計(jì)一個web容器,只探討實(shí)現(xiàn)的思路,并不涉及過多的具體實(shí)現(xiàn)。把它分解劃分成若干模塊和組件,每個組件模塊負(fù)責(zé)不同的功能,需要的朋友可以參考下
    2016-12-12
  • 一文搞懂SpringMVC中@InitBinder注解的使用

    一文搞懂SpringMVC中@InitBinder注解的使用

    @InitBinder方法可以注冊控制器特定的java.bean.PropertyEditor或Spring Converter和 Formatter組件。本文通過示例為大家詳細(xì)講講@InitBinder注解的使用,需要的可以參考一下
    2022-06-06
  • Java中獲取泛型類型信息的方法

    Java中獲取泛型類型信息的方法

    本文主要介紹了Java中獲取泛型類型信息的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • 最新IntelliJ?IDEA?2022配置?Tomcat?8.5?的詳細(xì)步驟演示

    最新IntelliJ?IDEA?2022配置?Tomcat?8.5?的詳細(xì)步驟演示

    這篇文章主要介紹了IntelliJ?IDEA?2022?詳細(xì)配置?Tomcat?8.5?步驟演示,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-08-08
  • java實(shí)現(xiàn)分布式項(xiàng)目搭建的方法

    java實(shí)現(xiàn)分布式項(xiàng)目搭建的方法

    這篇文章主要介紹了java實(shí)現(xiàn)分布式項(xiàng)目搭建的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-04-04
  • Flask接口如何返回JSON格式數(shù)據(jù)自動解析

    Flask接口如何返回JSON格式數(shù)據(jù)自動解析

    這篇文章主要介紹了Flask接口如何返回JSON格式數(shù)據(jù)自動解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-11-11

最新評論