Java异常是什么?
Java异常是Java提供的一种识别及响应错误的一致性机制。java为常见的错误设计了异常类,可以在遇到问题时被捕捉,方便debug.
异常类层次结构
+Throwable
+Error
+Exception
+IOException
+RuntimeException
典型异常
1.Exception中除RuntimeException外的子类 检查性异常:错误的操作引起的异常,如打开不存在的文件.编译器会检查它.
2.RuntimeException 运行时异常:编译器不会检查运行时异常,1/0可以通过编译.
3.错误: 资源不足,约束失败,或无法继续运行等,产生错误.
异常捕捉语法
try{
...
}catch(Exception e){
...
}finally{
...
}
首先执行finally中的语句,后执行catch中的returb语句.
throw关键字
throws是用于声明抛出的异常,而throw是用于抛出异常。
class MyException extends Exception {
public MyException() {}
public MyException(String msg) {
super(msg);
}
}
public static void test() throws MyException{
try {
int i = 10/0;
System.out.println("i="+i);
} catch (ArithmeticException e) {
throw new MyException("This is MyException");
}
}
常见异常
FileNotFoundException文件不存在异常,编译错误
NullPointerException 空指针异常
ArithmeticException 除数为零
ClassCastException 类型转换异常
OutOfIndexException 数组下标越界异常
ParseException 解析异常,日期字符串转换为日期对象的时候,有可能抛出的异常
OutOfMemoryError 内存不足
我该怎么做?
提早抛出+延迟捕获.
在错误最早发生的位置抛出异常,但让导致该错误发生的位置捕获异常.我们的目的是为了利用异常检测在哪里为什么出错.过早的捕获异常没有意义,且可能导致混淆.
参考资料:
菜鸟教程
how2j教程
知乎
skywang12345