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