码迷,mamicode.com
首页 > 编程语言 > 详细

<JAVA>总结实录01 : 异常处理 try-catch-finally

时间:2015-03-17 19:27:21      阅读:169      评论:0      收藏:0      [点我收藏+]

标签:

本来课程学习中对异常处理机制学的不深,结果今天做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     //在方法名后直接抛出异常Exception1
3 }
异常处理块方式二

方式一(捕获异常)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的执行顺序总结,详细可参看http://blog.csdn.net/kavensu/article/details/8067850  “3Q啦博主,小女子在此谢过~”)

 

 

<JAVA>总结实录01 : 异常处理 try-catch-finally

标签:

原文地址:http://www.cnblogs.com/qq595/p/javaknowledge_01.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!