黑马程序员技术交流社区
标题:
try、catch、finally分别在什么情况下使用?
[打印本页]
作者:
chen20134
时间:
2014-3-10 18:07
标题:
try、catch、finally分别在什么情况下使用?
本帖最后由 chen20134 于 2014-3-10 20:41 编辑
try、catch、finally分别在什么情况下使用?
作者:
.......
时间:
2014-3-10 18:43
1.try+catch
程序的流程是:运行到try块中,如果有异常抛出,则转到catch块去处理。然后执行catch块后面的语句
2.try+catch+finally
程序的流程是:运行到try块中,如果有异常抛出,则转到catch块,catch块执行完毕后,执行finally块的代码,再执行finally块后面的代码。
如果没有异常抛出,执行完try块,也要去执行finally块的代码。然后执行finally块后面的语句
3.try+finally
程序的流程是:运行到try块中,如果有异常抛出的话,程序转向执行finally块的代码。那末finally块后面的代码还会被执行吗?不会!因为你没有处理异常,所以遇到异常后,执行完finally后,方法就已抛出异常的方式退出了。
作者:
透过生活
时间:
2014-3-10 19:44
throws捕获并向外抛出异常
throw抛出异常
try catch内部捕获异常并做自定义处理
finally无论否有异常都会被处理语句除非finally前存被执行System.exit(int i)时除外
共同点:
1.在catch块和finally块中仍然可以再抛出新的异常
例如 throw new Exception("illegal invoked");
如果对于新抛出的异常没有写try的话,则要在方法后面声明抛出异常
反之,如果给catch块或finally块里的异常再套上一层try,catch的话,方法后面就不必声明异常了。
作者:
xiaochen33520
时间:
2014-3-10 20:07
try catch 一般在需要处理异常信息时使用,也就是说处理非系统级异常时,他不会导致软件运行崩溃,而是人为的问题,比如说传入的参数不匹配等等,就会需要try catch来处理这些异常信息。
而finally则不管是什么异常,这个finally中的代码都会运行,多线程、IO、数据库连接用的会比较多,因为他们在操作完毕后需要释放锁、关闭流、关闭数据库连接等操作。
作者:
chaos
时间:
2014-3-10 20:30
异常的捕获和处理
try{
//可能抛出异常的语句
}catch( Exception e)
{
........
//getMessage()获得异常事件的信息
//printlnStackTrace()用来跟踪异常事件发生时执行
}finally{
//无论是否发生异常都执行
//可以进行资源清除工作如:关闭,删除。。。。。。
.......
}
作者:
上官镇海
时间:
2014-3-10 21:17
总共有三种模式
1.try和catch模式这是常规模式:try{ 写入会出现异常的代码 }catch(异常类型 e){ 处理异常 }
2.try和catch,finally类型其中finally里面存放的是一定会执行的语句。
3.try和finally类型(不常见)没有处理异常。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2