/*
* throws抛出异常
- 谁调用声明throws的方法要不他也抛出异常要不就用try catch
- 子类声明的异常范围不能超过父类的声明范围
- 父类没有抛出异常,子类也不能抛出
- 被调用的方法不可抛出原有方法抛出异常类的父类或上层类的异常
- 抛出异常类型的种类的数目不可比原有方法数目多(类型要少)
- 还可以手动抛出一个异常(用的不多)
- try {
-
throw new Exception();
- } catch (Exception e){
-
e.printStackTrace();
- }
* try catch执行顺序
- 执行 try catch,无异常,给返回字赋值
- 执行finally(假如finally中有return,会覆盖掉以前的返回值,所以finally中不能有返回值)
常见的异常类
- 异常类越是父类越放下面
*java.lang.NullPointerException 空指针异常
*一个对象是空的,但是调用本对象的方法(可以先行判断对象是否为空)
*
*java.lang.ClassCastException 类型转换异常
*比如把dog类强行转换为cat类,会抛出本异常(可以用instanceof()方法判断对象类型)
*
*java.lang.ArrayIndexOutOfBoundsException 数组索引异常
*超出数组索引极限
*
*java.lang.NumberFormatException 数字格式异常
*如 String str=“123abc”;
*Integer i=new Integer(str);
*会抛出异常,数字格式异常
*/