ホームページ > Java > &#&チュートリアル > Javaでカスタム例外を定義するにはどうすればよいですか?

Javaでカスタム例外を定義するにはどうすればよいですか?

WBOY
リリース: 2023-04-22 16:52:08
転載
777 人が閲覧しました

1. 例外にはどのような種類がありますか?

例外は、コンパイル例外と実行時例外の 2 種類に分類されます。

コンパイル時例外

  • すべての例外クラスとそのサブクラス

  • を処理する必要があります明示的に指定しないと、プログラムでエラーが発生し、コンパイルできなくなります

##ランタイム例外

  • すべての RuntimeException クラスとサブクラス

  • 処理を表示する必要はなく、コンパイル時例外と同様に処理できます

  • package com.xxgc.chop5_2.test;
     
    public class ExceptionDemo {
        public static void show4(){
            //把字符串转换int类型
            String a="张三";
            int b=Integer.parseInt(a);//NumberF
        }
        //异常抛出
        public static void show3() throws ClassNotFoundException {
            Class.forName("Student");
        }
        public static void show2(){
            //运行时异常:程序运行的时候出现的异常,可以try
            //编译时异常(非运行时异常):必须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("数组下标出错了");
            }catch (Exception e){
                e.printStackTrace();
                System.out.println("出错了");
            }finally {
                //最终最后都要之心的代码,一般完成资源释放工作
                System.out.println("最终的!!!");
            }
        }
     
        public static void main(String[] args) {
            //trows:向上抛出异常,抛给方法的调用者
            //show3()方法向上抛出了异常,需要main方法解决
            //1.main方法解决了
            //2.main没解决完,继续向上抛,jvm(Java虚拟机)解决
            try {
                show3();
            } catch (ClassNotFoundException e) {
                throw new RuntimeException(e);
            }
        }
    }
    ログイン後にコピー
2.カスタム例外

1. まず新しいクラスを作成します

このクラスはカスタム例外クラスで、最初にアイデアの 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を定義し、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();
    }
}
ログイン後にコピー
ここで使用するアイデア ソフトウェア。

以上がJavaでカスタム例外を定義するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:yisu.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート