java异常

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

原文地址:https://www.cnblogs.com/bestefforts/p/11334878.html