首页 > 代码库 > java 异常

java 异常

/*java 中的所有异常类都是继承自 Throwable类,就是说所有的异常类都是Throwable类的子类.所有的类都是 Object 类的子类,Throwable类有两个子类,Error类和Exception类,主要关注的就是 Exception类,其中 Exception 类包括 RuntimeException和其他异常类*/public class Hi{    public static void exception()    {        int i[] = {1,2,3};        System.out.println("i[3] = "+i[3]);    }    public static void main(String[] args)    {        exception(); // 数组越界异常,报错    }}// 常见的运行时异常类(RuntimeException)java.lang.ArithmeticException: 算术异常java.lang.ArrayIndexOutOfBoundsException:数组越界异常java.lang.ArrayStoreException:数组元素值类型与数组类型不符异常java.lang.ClassCastException:对象转换异常java.lang.IllegalArgumentException:调用方法时传入非法参数异常java.lang.IllegalMonitorStateException:非法监控操作异常java.lang.IllegalStateException:java环境或java应用程序状态异常java.lang.IllegalThreadStateException:线程没有处于请求操作所要求状态异常java.lang.IndexOutOfBoundsException:索引越界异常java.lang.NegativeArraySizeException:数组长度为负值异常java.lang.NullPointerException:空指向异常java.lang.NumberFormatException:数字格式异常java.lang.SecurityException:违反安全性异常java.lang.StringIndexOutOfBoundsException:字符串索引越界异常java.lang.UnsupportedOperationException:操作错误异常检查异常java.lang.Exception:处理异常的基本异常类java.lang.ClassNotFoundException:找不到相关异常java.lang.CloneNotSupportedException:使用继承自Object类的 clone()方法,但是该类没有实现 Cloneable 接口java.lang.IllegalAccessException:访问类被拒绝异常(与权限有关)java.lang.InstantiationException:创建抽象类或接口对象实例异常java.lang.InterruptedException:线程被另一个线程中断异常java.lang.NosuchFieldException:在类中找不到此字段异常java.lang.NosuchMethodException:在类中找不到此方法异常/*虽然系统提供了默认的异常处理程序,但是一般情况下,还是开发人员更希望的是自己处理异常:两种处理异常处理方法:try ... catch ... finally ...//语句处理异常throws 关键字将异常传递出来*/try{    // 可能抛出异常的语句}catch(异常类型1 异常对象名1){    // 对该类型的异常进行处理的语句}[catch(异常类型2 异常对象名2) {} ... ][finally{    // 一定会运行的程序代码    }]// ===========public class Hi{    public static void main(String[] args)    {        int i[] = {1,2,3};        try        {            System.out.println("i[0] = "+i[0]);            System.out.println("i[3] = "+i[3]); // 数组越界异常        }catch(ArrayIndexOutOfBoundsException e)        {            System.out.println("异常信息:"+e);        }        System.out.println("i[1] = "+i[1]);  // 正常执行    }}/*i[0] = 1异常信息:java.lang.ArrayIndexOutOfBoundsException: 3i[1] = 2*/// =============public class Hi{    public static void main(String[] args)    {        int i[] = {1,2,3};        try        {            System.out.println("i[0] = "+i[0]);            System.out.println("i[3] = "+i[3]); // 数组越界        }catch(ArrayIndexOutOfBoundsException e)        {            System.out.println("异常信息:"+e);        }finally        {            System.out.println("无论如何都执行的语句");        }        System.out.println("i[1] = "+i[1]); // 正常执行    }}/*i[0] = 1异常信息:java.lang.ArrayIndexOutOfBoundsException: 3无论如何都执行的语句i[1] = 2*/// =============// 多个 catch语句块import java.util.Scanner;import java.util.InputMismatchException;public class Hi{    public static void main(String[] args)    {        Scanner read = new Scanner(System.in);        int arr[] = new int[5];        try        {            System.out.println("请输入数组元素:");            for(int i=0; i<arr.length; i++)            {                arr[i] = read.nextInt();            }            System.out.println("请输入数组元素索引:");            int n = read.nextInt();            System.out.println("arr["+n+"]="+arr[n]);            int m = arr[3]/arr[0];            System.out.println("m = "+m);        }catch(ArrayIndexOutOfBoundsException e) // 捕捉数组越界异常        {            System.out.println("异常:"+e);        }catch(ArithmeticException e)  // 捕捉算术异常        {            System.out.println("异常:"+e);        }catch(InputMismatchException e) // 捕捉输入不匹配异常        {            System.out.println("异常:"+e);        }        System.out.println("end ... ");    }}// ============

 

java 异常