一、异常的分类
基类 : Throwable
子类:Error 和 Exception
|--Throwable
|------Error :由系统底层发生,必须改代码
|------Exception
|------------Checked异常 :编译时可以被检测到的异常
|------------RuntimeException:编译时不被检测到
二、有哪些常见异常
ArithmeticException - 算术运算中,被0除或模除
ArrayIndexOutOfBoundsExc
ClassCastException - 类型转换异常
NullPointerException - 试图访问一空对象的变量、方法或空数组的元素
OutOfMemoryException - 内存不足,通常发生于创建对象之时
三、异常的处理
方式一:用try......catch 语句捕获并处理异常 (也可以加上finally)
方式二:对于处理不了的异常或者要转型的异常,在方法的声明处通过throws语句抛出异常。
例如:
public void test1() throws MyException{
...
if(....){
throw new MyException();
}
}
...
if(....){
throw new MyException();
}
}
四、throws 和 throw 有什么区别?
1、出现的位置不同:
throws用在方法上,后面跟异常类,可以跟多个;
throw用在方法内,后面跟异常对象(new创建)。
2、功能不能:
throws用来声明异常,抛给调用者处理
throw抛出具体的异常对象。此时功能已经结束,throw后面的语句不能执行