博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
<JAVA>总结实录01 : 异常处理 try-catch-finally
阅读量:5103 次
发布时间:2019-06-13

本文共 1119 字,大约阅读时间需要 3 分钟。

本来课程学习中对异常处理机制学的不深,结果今天做CVTE校招在线测评的时候,遇见了两道这样的题(一道打头第一题,一道押尾倒数第二道),好忧桑啊。。

那么亡羊补牢,总结下好了~ 

1. 异常处理块

1 try{ 2      //可能产生异常的语句 3 }catch(Exception1 e){ 4     //出现异常Excertion1时的处理语句 5 }catch(Exception2 e){ 6     //出现异常Excertion2时的处理语句 7 }finally{ 8     //无论如何均会执行的语句(一般用于释放一些资源等) 9 }10 //期间异常Exception1不能是Exception2的基类,Exception1可为Exception2的子类
异常处理块方式一
1 public void method() throws Exception1{2     //在方法名后直接抛出异常Exception13 }
异常处理块方式二

方式一(捕获异常)try-catch可以嵌套使用构成嵌套try-catch块;

方式二(抛出异常)可以抛出多个异常,即throws后可以添加一个异常列表,异常名之间用逗号分隔。

PS:printStackTrace()方法用来跟踪异常事件发生时打印堆栈中的信息(Throwable对象)

2. finally子句

在任何情况下,finally块中的语句均会执行,无论try块中是否出现异常或者是否捕获了异常;

finally子句通常用于I/O编程,可在finally块中放置一条文件关闭语句。

PS:1)若try块中没有出现异常,finally块中语句被执行,然后跳出异常处理块执行下一条语句;

  2)若try块中有一个语句出现异常,并被catch块捕获,此时跳过try块中其他语句直接执行catch块和finally子句

  3)若try块中有一个语句出现异常,但是没有被任何catch块捕获,则会跳过try块中其他语句直接执行finally子句

  4)即使在到达finally块之前有return语句,finally块仍然会执行,但是finally子句执行前,已经完成了return后表达式返回值的运算(并保存起来),顺序如下:

  try语句(return之前的代码部分)---计算return需要返回的值---finally---执行try中的 return语句

(含有return的执行顺序总结,详细可参看  “3Q啦博主,小女子在此谢过~”)

 

 

转载于:https://www.cnblogs.com/qq595/p/javaknowledge_01.html

你可能感兴趣的文章
好莱坞十大导演排名及其代表作,你看过多少?
查看>>
JVM-class文件完全解析-类索引,父类索引和索引集合
查看>>
Loj #139
查看>>
StringBuffer是字符串缓冲区
查看>>
hihocoder1187 Divisors
查看>>
java入门
查看>>
Spring 整合 Redis
查看>>
Azure 托管镜像和非托管镜像对比
查看>>
SQLite3初探
查看>>
多线程/多进程/异步IO
查看>>
leetcode 442. 数组中重复的数据 java
查看>>
struts2 文件上传下载注解示例
查看>>
编写一个简单的JAVA WEB Servlet页面
查看>>
JSP:Cookie实现永久登录(书本案例)
查看>>
js window.open 参数设置
查看>>
032. asp.netWeb用户控件之一初识用户控件并为其自定义属性
查看>>
linux--GCC用法
查看>>
Ubuntu下安装MySQL及简单操作
查看>>
OWIN是什么?
查看>>
前端监控
查看>>