zoukankan      html  css  js  c++  java
  • 1_Error和Exception的区别

    首先明确:两者都是继承自Throwable类,在java中,只有Throwable类型的实例才可以被抛出或者捕获

    两者的区别

    Error

    1. Error是系统中的错误,程序员是不能改变和处理的;程序编译时出现的错误,只能通过修改程序才能修正
    2. Error一般是指与虚拟机相关的问题,如系统崩溃,虚拟机错误,内存空间不足
    3. 对于error这类错误导致的应用程序终端,仅靠程序自身无法恢复和预防,遇到这样的错误,建议让程序终止
    

    Exception

    1. Exception表示程序可以处理的异常,可以捕获且可能恢复
    2. 遇到这类异常,应该尽可能处理异常,使程序恢复运行,而不是随意种植异常
    

    对于Exception,它又可以分为以下两类异常:CheckedException(检查异常)和RuntimeException(非检查异常)

    编写程序如何处理好异常

    1. Throwable、Exception、Error的设计和分类,比如。掌握那些应用最为广泛的子类,以及如何自定义异常
    2. 理解java语言中操作Throwable的元素和实践

    延申

    NoClassDefFoundError和ClassNotFoundException有什么区别

    首先,我们应该清楚:一个是error一个是exception,NoClassDefFoundError是jvm运行时通过classpath加载类是,早不到对应的类而抛出的错误。ClassNotFoundException是在编译过程中如果出现此异常,在编译过程中必须将ClassNotFoundException异常抛出

    具体来说两者的发生场景有如下
    NoClassDefFoundError

    1. 类依赖class或者jar不存在
    2. 类文件存在,但是存在不同的域中
    3. 大小写问题,javac编译的时候是五十大小的,很有可能编译出来的class文件与想要的不一样
    ...
    

    ClassNotFoundException

    1. 调用class的forName方法时,找不到指定的类
    2. ClassLoader中的findSystemClass()方法时,找不到指定的类
    ...
    
  • 相关阅读:
    数据结构-第5章学习小结
    数据结构-第4章学习小结
    数据结构-第3章学习小结
    数据结构-第2章学习小结
    数据结构-第1章学习小结
    实验五 单元测试
    实验四 代码评审
    实验三 UML建模工具的安装和使用
    实验二 结对编程 (第二阶段)
    结对编程实验 第一阶段
  • 原文地址:https://www.cnblogs.com/hello-liu/p/14995321.html
Copyright © 2011-2022 走看看