Java中有两种处理异常的方式,分别是用throws抛出异常、用try、catch捕获异常。
在Java
try-catch语句的语法格式:
![](http://dingyue.ws.126.net/2021/0625/7d726400p00qv8hr30004c000kn0058m.png)
打开网易新闻 查看精彩图片
当try语句当中捕获到异常时,会将异常抛出到catch语句中匹配异常类型,当异常和catch后面的异常类型相匹配时,则catch语句将会执行。
举个最基础的例子,除数不能为0
try中的异常与catch后面的异常类型匹配的情况:
![](http://dingyue.ws.126.net/2021/0625/b0fd1de3p00qv8hr30008c000q6006jm.png)
打开网易新闻 查看精彩图片
输出结果:
try中抛出的异常与catch后面的异常类型不匹配的情况:
![](http://dingyue.ws.126.net/2021/0625/0777aa13p00qv8hr3000ac000nz007nm.png)
打开网易新闻 查看精彩图片
输出结果:
一个try语句可以接多个catch语句
当有多个catch语句时,try部分的语句如果发生异常,就会再依次在各个catch语句中试图匹配异常类型。
![](http://dingyue.ws.126.net/2021/0625/4dd5f898p00qv8hr3000fc000rz00aym.png)
打开网易新闻 查看精彩图片
JDK1.7之后还有一种不常用的写法:
![](http://dingyue.ws.126.net/2021/0625/875562ebp00qv8hr3000bc000so00a9m.png)
打开网易新闻 查看精彩图片
这种写法需要通过instanceof 进行判断具体的异常类型。
两种写法的输出都是一样的:
![](http://dingyue.ws.126.net/2021/0625/f95c51b4p00qv8hr30003c000j0002km.png)
打开网易新闻 查看精彩图片
在catch内部,通过下面的方法输出异常信息:
getMessage() 返回一个字符串对发生的异常进行描述。
printStackTrace() :打印异常信息出错的位置及原因。
热门跟贴