Java中的异常处理

来源:互联网 发布:node express -e 编辑:程序博客网 时间:2024/06/06 10:01

错误和异常

Java 把所有的非正常情况分成两种:错误(Error)和异常(Exception)。

这里写图片描述

错误(Error)

错误(Error)一般是指与虚拟机相关的问题,如系统崩溃、虚拟机错误、动态链接失败等,这种错误无法恢复或不可能捕获,将导致应用程序中断。通常应用程序无法处理这些错误。

异常(Exception)

异常处理的任务就是将控制权从错误产生的地方转移给能够处理这种情况的错误处理器,Java 使用下面五个关键字处理异常:

  • try
  • catch
  • finally
  • throw: 自行抛出异常
  • throws: 声明方法可能抛出的异常

异常分为两类:Checked异常和Runtime异常。

Checked异常和Runtime异常

所有的 RuntimeException 类及其子类的实例被称为 Runtime 异常,其他异常类的实例被称为 Checked 异常。

Checked 异常是可以在编译阶段被处理的异常,Java 程序必须显示处理 Checked 异常。

Runtime 异常无须显示声明抛出,如果程序需要捕获 Runtime 异常,也可以使用 try-catch 块来实现。

异常处理的过程

Java程序在执行过程中如果出现异常,会自动生成一个异常类对象,该异常对象将被提交给Java运行时系统,这个过程称为抛出(throw)异常。

当Java运行时系统接收到异常对象时,会寻找能处理这一异常的代码并把当前异常对象交给其处理,这一过程称为捕获(catch)异常。

如果Java运行时系统找不到可以捕获异常的方法,则打印异常的跟踪栈信息,并中止程序运行。

异常处理的语法细节

1) 自动关闭资源的 try 语句

try () {}

自动关闭资源的 try 语句相当于包含了隐式的 finally 块,因此这个 try 语句可以既没有 catch 块,也没有 finally 块。

2) 同一个 catch 可以捕获多个异常类型

catch(FileNotFoundException | UnkonwnHostException e)

3) throws 可以声明抛出多个异常,多个异常类之间以逗号隔开

throws FileNotFoundException, UnkonwnHostException
0 0
原创粉丝点击