Rumah  >  Artikel  >  Java  >  Apakah cara untuk menentukan pengecualian tersuai dalam Java?

Apakah cara untuk menentukan pengecualian tersuai dalam Java?

WBOY
WBOYke hadapan
2023-04-22 16:52:08724semak imbas

1. Apakah jenis pengecualian

Pengecualian terbahagi kepada dua jenis, iaitu pengecualian kompilasi dan pengecualian masa jalan.

Pengecualian masa kompilasi

  • ialah semua kelas Pengecualian dan subkelasnya

  • mesti diproses , jika tidak, ralat akan berlaku dalam atur cara dan tidak boleh disusun

Pengecualian runtime

  • adalah semua kelas RuntimeException dan Subkelas mereka

  • tidak perlu diproses secara eksplisit, dan juga boleh dikendalikan dengan cara yang sama seperti pengecualian masa kompilasi

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. Pengecualian tersuai

1 Mula-mula buat kelas baharu

Kelas ini ialah kelas pengecualian tersuai Pertama, kami mewarisi idea RuntimeException, dan kemudian mencipta kaedah dengan dan tanpa parameter.

Kod adalah seperti berikut (contoh):

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

2. Kelas ujian

Buat kelas ujian baharu di bawah, dengan kaedah utama dan kaedah shou. Tentukan jenis int a dalam kaedah shou, dan masukkan jika untuk menentukan sama ada a tidak normal.

Kodnya adalah seperti berikut (contoh):

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

Perisian idea yang digunakan di sini.

Atas ialah kandungan terperinci Apakah cara untuk menentukan pengecualian tersuai dalam Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam