异常

来源:互联网 发布:mac更新后备忘录 编辑:程序博客网 时间:2024/06/08 02:33

异常

  • 异常概述:在运行时出现的意外错误称为”异常”,对异常的处理机制也成为判断一种语言是否成熟的标准,好的异常处理机制会使程序员更容易写出健壮的代码,防止代码中Bug的蔓延。Java中的异常类分为两种:错误(Error):一般指与虚拟机相关的问题,如系统崩溃,虚拟机错误,动态链接失败,这些错误无法恢复或捕获,将导致应用程序中断;异常(Exception):因程序编码错误或外在因素导致的问题,这些问题能够被系统捕获并进行处理,从而避免应用程序非正常中断,例如:除以0,对负数开平方根,空指针访问等。Exception异常从编程角度又可以分为以下两种类型:
  • 非检查型异常:编译器不要求强制处置的异常,该异常是因编码或设计不当导致的,这种异常可以避免,RuntimeException及其所有子类都属于非检查型异常
  • 检查型异常:编译器要求及其子类(RuntimeException及其子类除外)都属于检查型异常必须处理的异常,该异常是程序运行时因外界因素而导致的,Exception
  • try…catch…finally语句:在Java异常处理机制中,提供了finally块,可以将回收代码放入此块中,不管try块中的代码是否出现异常,也不管哪一个catch块被执行,甚至在try块或catch块中执行了return语句,finally块都会被执行。JAVA垃圾回收机制不会回收任何物理资源,垃圾回收机制只能回收堆内存中对象所占用的内存。在Java程序中,通常使用finally回收物理资源。
  • 抛出异常:Java中抛出异常可以使用throw或throws关键字:使用throw抛出一个异常对象:当程序出现异常时,系统会自动抛出异常,除此之外,Java也允许程序使用代码自行抛出异常,自行抛出异常使用throw语句完成;使用throws声明抛出一个异常序列:throws只能在定义方法时使用。当定义的方法不知道如何处理所出现的异常,而该异常应由上一级调用者进行处理,可在定义该方法时使用throws声明抛出异常。

    Tips:所有异常类的父类是Throwable;能单独和finally语句一起使用的块是try;用来手动抛出异常的关键字是throw;使用throw抛出一个异常对象。

原创粉丝点击