加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java异常

发布时间:2020-12-15 05:17:14 所属栏目:Java 来源:网络整理
导读:Java异常是什么? Java异常是Java提供的一种识别及响应错误的一致性机制。java为常见的错误设计了异常类,可以在遇到问题时被捕捉,方便debug. 异常类层次结构 +Throwable +Error +Exception +IOException +RuntimeException 典型异常 1.Exception中除RuntimeEx

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读