Java中有两种处理异常的方式,分别是用throws抛出异常、用try、catch捕获异常。

try-catch

在Java

try-catch语句的语法格式:

打开网易新闻 查看精彩图片

当try语句当中捕获到异常时,会将异常抛出到catch语句中匹配异常类型,当异常和catch后面的异常类型相匹配时,则catch语句将会执行。

举个最基础的例子,除数不能为0

try中的异常与catch后面的异常类型匹配的情况:

打开网易新闻 查看精彩图片

输出结果:

try中抛出的异常与catch后面的异常类型不匹配的情况:

打开网易新闻 查看精彩图片

输出结果:

一个try语句可以接多个catch语句

当有多个catch语句时,try部分的语句如果发生异常,就会再依次在各个catch语句中试图匹配异常类型。

打开网易新闻 查看精彩图片

JDK1.7之后还有一种不常用的写法:

打开网易新闻 查看精彩图片

这种写法需要通过instanceof 进行判断具体的异常类型。

两种写法的输出都是一样的:

打开网易新闻 查看精彩图片

在catch内部,通过下面的方法输出异常信息:
getMessage() 返回一个字符串对发生的异常进行描述。
printStackTrace() :打印异常信息出错的位置及原因。