Error和Exception的区别

基本概念:

  Error和Exception都是继承与Throwable

  Error:是一种不可预料的错误情况,这种错误发生后会导致JVM不可处理,或者不可恢复等情况

      Error属于严重错误,如系统崩溃、虚拟机错误、动态链接失败等,这些错误无法恢复或者不可能捕捉,将导致应用程序中断,Error不需要捕捉。

      比如OutOfMemoryError、NoClassDefFoundError等错误!!!

 

  Exception:表示可以预料的异常,我们可以捕获这种异常,并对其进行处理

  Exception:还分为检查时异常(Checked),运行时时异常(Runtime)   

        检查时异常:其必须被 try{}catch语句块所捕获,或者在方法签名里通过throws子句声明

              受检查的异常必须在编译时被捕捉处理,命名为 Checked Exception

              是因为Java编译器要进行检查,Java虚拟机也要进行检查,以确保这个规则得到遵守.

        运行时异常:需要程序员自己分析代码决定是否捕获和处理,比如 空指针,被0除...

       

NullPointerException
ArrayIndexOutOfBoundsException 
InputMismatchException 
NumFormatException
ArithmeticException 
ClassCastException  
lllegalArgumentException 
lllegalStateException 
NosuchElementExcetion

  

      运行时处理异常的几个关键字:try  catch  finally  throws  throw

                try:将可能会发生异常的代码块括起来

                catch:出现异常时通过catch来进行异常处理

                finally:不管发不发生异常都会执行finally中的代码 

                throws:表示声明异常,通常写在方法的后面 并写明异常种类 

                    throws  NullPointerException,............可以声明多个异常用逗号隔开

                throw:抛出异常,并写明抛出异常的种类  throw new Exception

                注意:try中也可抛出新的异常

                     多重catch是要遵循先子类后父类的规则,否则编译报错

                   有一种情况finally不会执行System.exit(0);中断程序

                   如果一个方法声明了异常,调用此方法时要捕获异常或者继续声明异常(也可以在try中抛出异常),否则编译错误

posted @ 2019-12-27 11:19  大海中的海洋  阅读(275)  评论(0编辑  收藏  举报