美文网首页
Java 核心36讲(第2讲) Exception 和 Erro

Java 核心36讲(第2讲) Exception 和 Erro

作者: 浅陌_45f3 | 来源:发表于2019-01-16 19:06 被阅读0次

共同点

都是从 Throwable 这个 Java 类继承来的。Throwable 类也就衍生出这两种类型。

不同点

Error:

表示编译时和系统错误,指在正常情况下,不大可能出现的情况。绝大部分的 Error 都会导致程序不可恢复。

Exception:

是程序正常运行中,可以预料的意外情况,可能并且应该被捕获,并进行相应的处理。
Exception 又分为检查型异常 (check exception) 与 非检查型异常 (unchecked exception) 。检查型异常是在编译期检查,非检查型异常就是运行时异常。运行时异常都是从 RuntimeException 继承来的,这种异常属于错误,将被自动捕获。

补充

1、理解 Throwable、Exception、Error 的设计和分类。

面试官会追问一些细节,如:你了解哪些 Error、Exception、RuntimeException? 重点了解一下常用的子类。

经典问题:NoClassDefFoundError 与 ClassNotFoundException的区别。

NoClassDefFoundError 产生原因:如果 JVM 或者 ClassLoader 实例尝试加载类的时候却找不到类的定义,要查找的类在编译期存在,运行时却找不到,造成该问题的原因可能是打包过程露掉了部分类,或者 jar 包出现损坏或者篡改。
ClassNotFoundException产生原因:1.Java 支持反射方式在运行时动态加载类,例如使用 Class.forName() 方法来动态的加载类时,可以将类名作为参数传递到上述方法中,从而将指定类加载到 JVM 内存中,如果这个类在类路径中没有被找到,就会抛出这个错误。常见问题在于书写名错误;2.当一个类已经被某个类加载器加载到内存中了,另一个类加载器又尝试着动态的从同一个包中加载这个类。通过控制动态类加载过程可以解决这个问题。

2、理解 Java 语言中操作 Throwable 的元素和实践。

掌握最基本的语法同时也要懂得如何处理典型场景。
典型场景是什么呢?待补充

异常处理基本原则

1.尽量不要捕获类似 Exception 这样的通用异常,应该捕获特定异常。

这样写为了让自己代码能够体现出更多的信息。

2.不要生吞异常。

在工作中,如果发生异常,不要使用 e.printStackTrace() 来输出异常,因为很难判断输出到哪里去了,最好使用产品日志,详细的输入到日志系统中。

相关文章

网友评论

      本文标题:Java 核心36讲(第2讲) Exception 和 Erro

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