异常
什么是异常?
在程序的运行过程中锁发生的不正常的事件
异常处理机制为程序提供处理错误的能力。
System.err.print();报错专用输出,有颜色标注,所有的err打印的都在顶行输出
eclipse快捷键 syse.
通过if-else进行异常处理的机制主要有以下缺点:
- 代码臃肿
- 影响开发效率
- 很难穷举所有的异常情况,程序仍旧不健壮
- 影响代码的可读性,加大日后程序的维护难度
try{
//可能出现异常的代码
}catch(){
//如果try里出现异常就执行
}finally{
//不管如何 除了System.exit(); 都会执行
}
在catch块中可以加入自定义处理信息
void printStackYrace();//输出异常的堆栈信息还会输出出现异常的行号
String getMessage();//返回异常信息描述字符串
常见异常:
异常 | 说明 |
---|---|
Exception | 异常层次结构的跟类 是所有异常的父类 |
ArithmeticException | 算数错误,比如零做除数 |
ArrayIndexOutOfBoundsException | 数组下标越界 |
NullPointerException | 访问Null对象成员,空指针 |
ClassNotFoundException | 不能加载所需的类 |
InputMismatchException | 要接受的类型和实际输入的类型不匹配 |
IllegalArgumentException | 方法接受非法参数 |
ClassCastException | 对象强制类型转换出错 |
NumberFormatException | 数字格式转换异常 |
抛出异常:
throw:方法内通过throw抛出异常,把问题交给调用者去解决
throw new Exception("错误");
声明异常:
通过throws关键词声明某个方法可能抛出的各种异常 可以同时声明多个异常用逗号隔开,小的在前大的在后
Checked异常:
简单的说就是(非运行时异常)编译错误,无法通过编译