数组-异常
一、idea中两个快捷键:
- ctrl+h:查看类的接口
- 连续按下两次shift:查看JDK源代码
二、异常
- 1、异常 :程序执行过程中的不正常情况。作用 :增强程序的健壮性。
- 2、异常在java中以类的形式存在,每一个异常类都可以创建异常对象。new一个对象
- throws 关键字:声明:把问题标识出来,报告给我们的调用者;不需要处理;使用在参数列表后面:Throws+具体异常类型;
-
throw关键字:用来抛出一个指定类型的异常,创建一个异常对象,throw异常对象用于方法内部
-
public static int divide(int a,intb){ if(b==0){ throw new ArthmeticExceprion("除数不能为0") } return a/b; }
三、Throwable异常的最高级父类:
- 1) Error 系统内部的JVM问题,Error任何问题,应用程序问题都无法解决。 ① VirtualMachineError ② ThreadDeath ③ IOError
- 2) Exception 应用程序引起的问题,通过调试程序可以解决;① RuntimeException //运行时异常 ② SQLException //数据库异常 ③ IOException //文件读写异常
- Java语言中你对异常的处理方式包含两种:
(1)在方法参数列表后面声明的使用:throws 关键字将异常抛给方法调用者;
(2)使用:try..catch..finall语句进行异常捕捉
四、final--finally--finalize 区别:
- final:关键字,表示最终的不能被继承和修改,final修饰的一般都是常量(final int MAX=1;定义一个常量;final class Student 不能被继承;)
- finally:关键字,和try...catch(){ }联合使用,出现在异常处理机制中,其中的代码块一定会执行,并且在程序中只能出现一次
- finalize:是Object中的一个方法,作为一个方法名出现;垃圾回收器GC负责调用finalize这个方法。
五、自定义异常
- 自定义异常:需要继承运行时异常:RuntimeException
- 看下sun公司:NullPointException空指针异常---ArithmeticException:算术异常;源代码
//空指针异常源代码:NullPointException空指针异常 //源代码 public class NullPointerException extends RuntimeException { public NullPointerException() { super(); } public NullPointerException(String s) { super(s); } } //算数异常源代码:ArithmeticException:算术异常 //源代码 public class ArithmeticException extends RuntimeException { public ArithmeticException() { super(); } public ArithmeticException(String s) { super(s); } }
自定义异常:需要继承运行时异常:RuntimeException
//自定义空指针异常 public class MyNullPointExcception extends RuntimeException{ public MyNullPointExcception(){ super(); } public MyNullPointExcception(String message){ super(message); } }
//测试自定义异常: public class Test{ public static void main(String[] args){ Integer add = null; try{ add = add(null,1); }catch( MyNullPointExcception e){ e.printStackTrace(); System.out.println("自己定义的异常"); } }
//定义一个方法 public static Integer add(){ if(a == null || b== null){ throw new MyNullPointException("参数不能为null"); } return a+b; } }
异常结构图: