/* 异常:程序运行时出现的不正常情况, 异常由来: 问题也是现实生活中的一个具体事物,也可以通过java的类的形式进行描述,并封装成对象,其实 就是java对不正确的情况进行描述后的对象本质。 对于问题的划分:一种是严重问题,一种是非严重问题 对于严重问题:java通过Error进行描述,此类问题一般不编写针对性代码进行处理、 对于非严重问题:java通过Exception进行描述。编写代码进行针对性处理。 Throwable是java中所有异常的父类,命名时,父类作为子类的后半部分名称。 Throwable下分为 Error: Exception: 2、异常处理: java中提供特殊语句进行代码处理。 try { 处理代码块 } catch(异常类 变量) { 处理异常的代码;处理方式 } finaly { 必须处理部分 } 3、多异常处理: (1)、声明异常时,建议声明更具体的异常,方便处理。例如:对于除数为0的,throws ArithmeticException//具体的异常,方便处理。 多异常throws ArithmeticException,ArrayIndexOutOfBoundsException,同时要求异常捕捉的时候用两个catch语句进行捕捉。 出现第一个异常,函数就已经跑出,跳出函数,所以只能有一个异常进行显示。如果多个catch块中是继承关系,父类放在最下面, 建议在处理catch异常时,要定义具体的处理方式,而不是展现具体的信息给用户看。具体信息可以写入日志,重新写提示语句。 */ class Tool { int DivTool(int a,int b) { try { return a/b; } catch (Exception ex) { System.out.println(ex.getMessage()); //异常原因 System.out.println(ex.getCause()); System.out.println(ex.toString()); //异常名称 ex.printStackTrace(); //异常名称,异常信息,异常出现的额位置,其实jvm默认的处理方式就是这个 return -1; } } int divTool(int a,int b) throws Exception //在功能上声明该功能有可能出现问题。编译的时候对错误进行直接提示,编译报错。 { return a/b; } } class ExceptionDemo { public static void main(String[] args) { Tool tl=new Tool(); int x=tl.DivTool(4,1); System.out.println(x); System.out.println("Over"); int y=tl.divTool(4,0); //编译的时候对错误进行直接提示 //ExceptionDemo.java:59: 错误: 未报告的异常错误Exception; 必须对其进行捕获或声明以便抛出 //通过提示,可知有两个方法,一是进行try{}catch{}捕捉,而是进行抛出,还是此阿勇throws进行抛出,写在函数后面。 } }