有什么区别

解决方案 »

  1.   

    简单一点说:
    error:程序语法逻辑等问题导致不能顺利编译通过。
    Exception:程序运行时出现的例外情况。
      

  2.   

    LZ所说的Error肯定不会指的是编译及程序的逻辑错误。而是运行时系统所抛出异常的一种。Object
     ┃
    Throwable
     ┣━Exception
     ┃   ┣━RuntimeException
     ┃   ...
     ┗━Error
        ┃
        ...
    这个是异常类型结构的顶层部分。
      Error异常表示非常严重的问题,通常不可恢复,并且不可能(很难)被捕捉。
      RuntionException和Error的子类都是非检查型异常,就是说在程序中,你不应该捕捉这两类异常。不应该创建非检查型异常。  你在编程中抛出及捕捉的应该是Exception的子类,但不能是RuntimeException的子类。这些是一般意义上的异常。  下面是几个RuntimeException和Error的例子。
    RuntimeException
      ┣━ArithmeticException
      ┣━IndexOutOfBoundsException
      ┣━ClassCastException
      ┣━IllegalArgumentException
      ┃    ┣━NumberFormatException
      ┣━NullPointerException
      ┣━NumberFormatExceptionError
      ┣━LinkageError
      ┃   ┣━ClassFormatError
      ┃   ┣━NoClassDefFoundError
      ┣━VirtualMechineError
      ┃   ┣━OutOfMemoryError
      ┃   ┣━StackOverflowError
      

  3.   

    error 表示恢复不是不可能但很困难的情况下的一种严重问题。比如说内存溢出。不可能指望程序能处理这样的情况。
    exception 表示一种设计或实现问题。也就是说,它表示如果程序运行正常,从不会发生的情况。