`

java异常备忘

阅读更多

Java中的异常类,包括内置的异常类以及自定义的异常类,都直接或者间接地继承自java.lang.Throwable类。

1. 两个主要分支:

java.lang包中,我们可以看到Throwable类有两个直接子类:Error类和Exception类,如图所示:

 

 Error类及其子类描述了java运行时系统的内部错误和资源耗尽错误。出现这样的错误的,除了通知用户,并接尽力使程序安全地终止之外,没有更好的办法。

 

      Exception类的层次结构又分为两个分支:一个分支由RuntimeException派生,另外一个分支包含除RuntimeException类之外的异常类。

 

所有的Checked Exception 均从java.lang.Exception 继承而来,而Runtime Exception 则继承java.lang.RuntimeException 或java.lang.Error (实际上java.lang.RuntimeException 的上一层也是java.lang.Exception)。

 

异常举例:

  • RuntimeException:

           BufferOverflowException,  IndexOutOfBoundsException,  NullPointerException

           ConcurrentModificationException ...

  • other Exception: ClassNotFoundException,  IOException, S QLException

 

2. unchecked exceptionchecked exception

unchecked exception:派生至Error类和RuntimeException类的所有异常类(图中红色所示)

checked exception:除未检查的异常类之外的异常类 (图中黄色所示)

 

Java的编译器检查代码中所有的checked exception的都需要被提供异常处理程序如果没有的话,将报错

代码中不需要显示的声明未检查的异常,因为这些异常要么Error,代表java运行时系统的内部错误;要么是RuntimeException,这种错误是由程序员引起的错误,完全可以修正代码解决。

  • 大小: 7.6 KB
分享到:
评论

相关推荐

    java:Java备忘单

    Java备忘单 文件夹信息 源代码/一个文件源 Java核心的简单模板 简单的练习 编码测试 使用编码 处理文件 IntRangeIterable.java 迭代器 JavaScriptTest.java 使用 JavaScript 引擎 LambdaStreamTest.java Lambda ...

    Java基础知识点总结.docx

    十、 异常★★★★ 34 十一、 包(package) 37 十二、 多线程★★★★ 39 为什么要使用多线程 39 创建线程和启动 39 线程的生命周期 44 线程管理 45 线程同步 49 线程通信 52 线程池 58 死锁 64 线程相关类 65 十三...

    java面试800题

    Q0058 一个Java抽象类声明了一个方法并会抛出一个异常,问继承这个抽象类的子类,实现了这个方法,这个方法声明是不是一定要抛出一模一样的异常,可不可以不抛,或者抛出的异常比抽象类的异常范围大,或者小?...

    【白雪红叶】JAVA学习技术栈梳理思维导图.xmind

    备忘录模式 观察者模式 状态模式 策略模式 模板方法模式 访问者模式 设计案例 UML 架构 系统架构能力 基本理论 扩展性设计 可用性设计 可靠性设计 一致性设计 负载均衡设计 过载保护设计 协议设计...

    java 面试题 总结

    java编译器要求方法必须声明抛出可能发生的非运行时异常,但是并不要求必须声明抛出未被捕获的运行时异常。 6、说出Servlet的生命周期,并说出Servlet和CGI的区别。 Servlet被服务器实例化后,容器运行其init方法,...

    超级有影响力霸气的Java面试题大全文档

    java编译器要求方法必须声明抛出可能发生的非运行时异常,但是并不要求必须声明抛出未被捕获的运行时异常。 9、说出Servlet的生命周期,并说出Servlet和CGI的区别。  Servlet被服务器实例化后,容器运行其init方法...

    scala-cheatsheet:http的源代码

    ScalaTest和备忘单Scala测试布尔测试收集测试型式试验异常测试私人方法测试未来方法测试 收藏转换Java集合 一般的添加换行符将多行字符串转换为单行检查期权的价值以字符串形式读取文件内容使用密封特征创建枚举整数...

    acl-journal:ACL Android开发人员跟踪,7天的代码挑战

    期刊ACL Android开发人员跟踪,7天的代码挑战关于Android应用程序是使用Java本机开发的,遵循MVVM架构(在学习过程中)。 该应用程序的核心功能是供用户创建和管理个人日记/备忘。 该应用程序由可靠的持久层和批准的...

    收集的常见的专业问题解决办法.rar

    2009-02-24 08:42 165165 37065 常见的专业问题解决办法\Java核心技术学习笔记--异常和调试_Believe ┭┮ YourSelf.mht 2009-03-20 16:36 142683 39110 常见的专业问题解决办法\JR - 专题论坛问题 - eclipse??如何...

    自学oracle存储过程

    关于 Oracle 存储过程的若干问题备忘...........................................................................................4 1. 在 Oracle 中,数据表别名不能加 as。......................................

Global site tag (gtag.js) - Google Analytics