首页 > 代码库 > 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 异常
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。