• java Exception和Error的区别


    Exception 子类下面的另一部分子类对应于Java程序中的非运行时异常的处理,这些异常也称为显式异常。它们都是在程序中用语句抛出、并且也是用语句进行捕获的,比如,文件没找到引起的异常、类没找到引起的异常等。

    常见的异常有:

    • ArithmeticException——由于除数为0引起的异常;

    • ArrayStoreException——由于数组存储空间不够引起的异常;

    • ClassCastException—一当把一个对象归为某个类,但实际上此对象并不是由这个类 创建的,也不是其子类创建的,则会引起异常;

    • IllegalMonitorStateException——监控器状态出错引起的异常;

    • NegativeArraySizeException—一数组长度是负数,则产生异常;

    • NullPointerException—一程序试图访问一个空的数组中的元素或访问空的对象中的 方法或变量时产生异常;

    • OutofMemoryException——用new语句创建对象时,如系统无法为其分配内存空 间则产生异常;

    • SecurityException——由于访问了不应访问的指针,使安全性出问题而引起异常;

    • IndexOutOfBoundsExcention——由于数组下标越界或字符串访问越界引起异常;

    • IOException——由于文件未找到、未打开或者I/O操作不能进行而引起异常;

    • ClassNotFoundException——未找到指定名字的类或接口引起异常;

    • CloneNotSupportedException——一程序中的一个对象引用Object类的clone方法,但 此对象并没有连接Cloneable接口,从而引起异常;

    • InterruptedException—一当一个线程处于等待状态时,另一个线程中断此线程,从 而引起异常,有关线程的内容,将在下一章讲述;

    • NoSuchMethodException一所调用的方法未找到,引起异常;

    • Illega1AccessExcePtion—一试图访问一个非public方法;

    • StringIndexOutOfBoundsException——访问字符串序号越界,引起异常;

    • ArrayIdexOutOfBoundsException—一访问数组元素下标越界,引起异常;

    • NumberFormatException——字符的UTF代码数据格式有错引起异常;

    • IllegalThreadException—一线程调用某个方法而所处状态不适当,引起异常;

    • FileNotFoundException——未找到指定文件引起异常;

    • EOFException——未完成输入操作即遇文件结束引起异常。

    •  

    rror类和Exception类的父类都是throwable类,他们的区别是:

    Error类一般是指与虚拟机相关的问题,如系统崩溃,虚拟机错误,内存空间不足,方法调用栈溢等。对于这类错误的导致的应用程序中断,仅靠程序本身无法恢复和和预防,遇到这样的错误,建议让程序终止。

    Exception类表示程序可以处理的异常,可以捕获且可能恢复。遇到这类异常,应该尽可能处理异常,使程序恢复运行,而不应该随意终止异常。

    Exception类又分为运行时异常(Runtime Exception)和受检查的异常(Checked Exception ),运行时异常;ArithmaticException,IllegalArgumentException,编译能通过,但是一运行就终止了,程序不会处理运行时异常,出现这类异常,程序会终止。而受检查的异常,要么用try。。。catch捕获,要么用throws字句声明抛出,交给它的父类处理,否则编译不会通过。

    error都是继承自父类Java.lang.Error,而exception都继承自java.lang.Exception.

    再看看JDK中对于java.lang.Error和java.lang.Exception的解释。
          java.lang.Error: An Error is a subclass of Throwable that indicates serious problems that a reasonable application should not try to catch. Most such errors are abnormal conditions.

     即:Error是Throwable的子类,用于标记严重错误。合理的应用程序不应该去try/catch这种错误。绝大多数的错误都是非正常的,就根本不该出现的。 java.lang.Exception: The class Exception and its subclasses are a form of Throwable that indicates conditions that a reasonable application might want to catch. 即Exception 是Throwable的一种形式的子类,用于指示一种合理的程序想去catch的条件。即它仅仅是一种程序运行条件,而非严重错误,并且鼓励用户程序去catch它。Error和RuntimeException 及其子类都是未检查的异常(unchecked exceptions),而所有其他的Exception类都是检查了的异常(checked exceptions).

    checked exceptions: 通常是从一个可以恢复的程序中抛出来的,并且最好能够从这种异常中使用程序恢复。比如FileNotFoundException, ParseException等

  • 相关阅读:
    PHP设置时区
    MySQL基本数据操作
    MySQL更改字段名
    MySQL修改数据表
    MySQL数据表的修改
    MySQL表级约束和列级约束
    MySQL外键约束的参照操作
    MySQL约束
    MySQL默认约束DEFAULT
    [Caffe]:关于*** Aborted at 1479432790 (unix time) try "date -d @1479432790" 错误的另一种原因
  • 原文地址:https://www.cnblogs.com/fly0512/p/9874839.html
Copyright © 2020-2023  润新知