zoukankan      html  css  js  c++  java
  • Checked&Unchecked Exception

    Java 中定义了两类异常:

    1) Checked exception: 这类异常都是Exception的子类 。异常的向上抛出机制进行处理,如果子类可能产生A异常,那么在父类中也必须throws A异常。可能导致的问题:代码效率低,耦合度过高。C#中就没有使用这种异常机制。

    2) Unchecked exception: 这类异常都是RuntimeException的子类,虽然RuntimeException同样也是Exception的子类,但是它们是特殊的,它们不能通过client code来试图解决,所以称为Unchecked exception 。
     

    checked exception是需要强制catch的异常,你在调用这个方法的时候,你如果不catch这个异常,那么编译器就会报错,比如说我们读写文件的时候会catch IOException,执行数据库操作会有SQLException等 
    UnChecked Exception是RuntimeException,也就是说运行时的异常,这种异常不是必须需要catch的,你是无法预料的,比如说你在调用一个list.szie()的时候,如果这个list为null,那么就会报NUllPointerException,而这个异常就是RuntimeException,也就是UnChecked Exception
     

    Error和RuntimeException及其子类是unchecked exception.其他exception是checked exception. 
    checked exception可以出现在throws子句中,unchecked exception不可以。 
    Error是java自己的错误或者诸如内存耗尽等严重错误,是不可抗拒的,显然没有捕捉的必要,而且也没有办法捕捉。 
    RuntimeException是你的程序有逻辑错误,是程序员应该积极避免其出现的异常。比如NullPointerException等,完全是程序员马虎出的错。当遇到这种错误时,java将这个错误自动捕捉到,比如显示到concole里,然后继续运行。而checked exception如果不捕捉则会导致程序终止。
     

    error 表示恢复不是不可能但很困难的情况下的一种严重问题。比如说内存溢出。不可能指望程序能处理这样的情况。

    exception 表示一种设计或实现问题。也就是说,它表示如果程序运行正常,从不会发生的情况

    error和excption的区别
     
    Error的继承关系:
     
    java.lang.Object

    --java.lang.Throwable
     
    --java.lang.Error
     
    Exception的继承关系:
     
    java.lang.Object
     
    --java.lang.Throwable
     
    --java.lang.Exception
     
    二者的不同之处:
     
    Exception:
     
    1.可以是可被控制(checked) 或不可控制的(unchecked)
     
    2.表示一个由程序员导致的错误
     
    3.应该在应用程序级被处理
     
    Error:
     
    1.总是不可控制的(unchecked)
     
    2.经常用来用于表示系统错误或低层资源的错误
     
    3.如果可能的话,应该在系统级被捕捉

  • 相关阅读:
    Eclipse安装Hadoop插件
    (转)Ubuntu14.0.4中hadoop2.4.0伪分布模式配置
    Hadoop--DataNode无法启动
    启动与关闭hadoop
    hadoop中执行命令时发生错误
    strings命令
    Deriving data from ElasticSearch Engine
    elasticsearch data importing
    reading words in your computer and changing to female voice, linux festival text2wave saving wav files
    DDNS client on a Linux machine
  • 原文地址:https://www.cnblogs.com/JavaTechLover/p/Checked-UncheckedException.html
Copyright © 2011-2022 走看看