异常:Exception
异常的种类:
- 检查性异常:用户错误或问题引起的异常,是程序员无法预见的。如打开一个不存在的文件
- 运行时异常:运行时异常可以在编译时被忽略
- 错误ERROR:错误不是异常,不是程序员控制的问题。如栈溢出
异常体系结构
java中把异常当做对象来处理,并定义一个基类 java.lang.Throwable作为异常的超类。
在java API中已经定义了许多异常类,两大类,错误ERROR(避免)和异常Exception(尽可能避免)
ERROR是由java虚拟机生成并抛出,大多数错误与代码编写者所执行的操作无关。
Exception 中重要的子类RuntimeException(运行时异常)
- ArrayIndexOutBoundException(数组下标越界)
- NullPointerException(空指针异常)
- ArithmeticException(算术异常)
- MissingResourceException(丢失资源)
- ClassNotFoundException(找不到类)
这种异常一般是由程序逻辑错误引起的,程序应该从逻辑的角度尽可能的避免这类异常的发生。
java异常处理机制
try catch finally throw throws
public class Test(){
main(...){
int a = 1;
int b =0;
try{//{}是代码块,try是监控区域
sysout(a/b);
}
catch(ArithmeticException e){//catch(想要捕获什么类型的异常) 捕获异常
sysyout("程序出现异常,变量b不能为0");
}
catch(){
}//
finally{//无论程序出不出异常都会出finally,处理善后工作(可以不要,I/O流一般使用)
sysout("finally");
}
}
}
注:如果要捕获多个异常,要从小到大写!
Ctrl+Alt+T自动包裹
e.printStackTrace();//打印错误的栈信息