美文网首页
Java的Exception和Error

Java的Exception和Error

作者: song_jx | 来源:发表于2019-12-09 22:31 被阅读0次

    Exception和Error的区别

    (1)Exception和Error都继承Throwable,java中只有Throwable类型的实例才能被抛出(throw)或捕获(catch)。
    (2)Exception是可以预料到的意外情况,应该被捕获进行相应的处理。Exception又分为可检查(checked)异常的和不检查(unchecked)异常。可检查异常必须显示地进行捕获处理,这是编译期检查的一部分。不检查异常又叫运行时异常(RuntimeException),通常是编码时可以避免的,编译器不强制检查。
    (3)Error是正常情况下,不大可能出现的情况。绝大部分的Error都可能导致程序处于非正常、不可恢复状态,无需捕获。

    常见的子类

    Error : OutOfMemoryError
    不检查异常:NullPointerException,ArrayIndexOutOfBoundsException

    NoClassDefFoundError和ClassNotFoundException的区别

    (1)ClassNotFoundException是检查异常。
    当通过name动态地加载类,在classpath找不到对应的class文件时会出现该异常:
    Class.forName(name)
    ClassLoader.loadClass、
    ClassLoader.findSystemClass
    (2)NoClassDefFoundError是Error。
    通常是通过new创建一个新的对象,但是找不到对应的类时出现。
    类在编译时能找到,在运行时却找不到,会出现NoClassDefFoundError,通常是jar包冲突引起的。

    throw和throws的区别

    throw作用于函数体里面,用来抛出一个异常。
    throws出现在函数头,用来表明可能出现的异常。

    try-with-resources

    try-with-resources能够确保try语句结束时关闭资源,无需再将处理资源关闭的代码写在finally块中,前提资源必须是实现了AutoClosable接口。

    相关文章

      网友评论

          本文标题:Java的Exception和Error

          本文链接:https://www.haomeiwen.com/subject/wynigctx.html