黑马程序员技术交流社区

标题: try、catch、finally 、throw、 throws分别在什么情况下使用,怎么用 [打印本页]

作者: 我爱的是你爱我_    时间: 2014-3-18 17:02
标题: try、catch、finally 、throw、 throws分别在什么情况下使用,怎么用
try、catch、finally 、throw、 throws分别在什么情况下使用,怎么用。?应该注意哪些?
作者: 董振冬    时间: 2014-3-18 17:31
程序的流程是:运行到try块中,如果有异常抛出,则转到catch块,catch块执行完毕后,执行finally块的代码,再执行finally块后面的代码。如果没有异常抛出,执行完try块,也要去执行finally块的代码。 然后执行finally块后面的语句        throw 是语句抛出一个异常;throws 是方法抛出一个异常;throws 可以单独使用,但 throw 不能; throw要么和try-catch-finally语句配套使用,要么与throws配套使用。但throws可以单独使用,然后再由处理异常的方法捕获。
作者: 赵军军    时间: 2014-3-18 18:42
throws是获取异常
throw是抛出异常
try是将会发生异常的语句括起来,从而进行异常的处理,catch是如果有异常就会执行他里面的语句,而finally不论是否有异常都会进行执行的语句。
作者: sgs_gzy    时间: 2014-3-18 19:17
try{}用来定义需要被检测的代码,catch(){}用来处理异常的代码,
finally{}中是一定会执行的代码
注意:
1,finally中定义的通常是 关闭资源代码。因为资源必须释放。
2,finally只有一种情况不会执行。当执行到System.exit(0);finally不会执行。
throw定义在函数内,用于抛出异常对象。
throws定义在函数上,用于抛出异常类,可以抛出多个用逗号隔开
当函数内容有throw抛出异常对象,并未进行try处理。必须要在函数上声明,否则编译失败。
注意:RuntimeException除外。也就说,函数内如果抛出的RuntimeException异常,函数上可以不用声明。
这些毕老师视频都有讲到啊,day10里面有很详细解释!
作者: SyouRai_Tsk    时间: 2014-3-18 22:45
http://blog.csdn.net/ronawilliam/article/details/3299676 可以参考此帖
作者: 枫露    时间: 2014-3-18 23:39
本帖最后由 枫露 于 2014-3-18 23:40 编辑

异常处理机制
try {
        这里写可能出错的代码               
                } catch (Exception e) {
                        这里写可能出现的错误异常的处理
                }finally{
                        这里写一定会执行的代码,有些资源需要关闭的时候
                }
throw和throws写在main方法的大括号的前边,当有一个异常的时候使用throw,有多个异常使用throws
一般情况下,对需要处理的异常使用try catch finally ;
作者: 透过生活    时间: 2014-3-19 13:13
try{
    可能出现异常的代码,用于捕捉异常
}catch()Exception e{
    处理出现的异常
}finally{
   不管上边的执行不执行,这里存放一定执行的代码,(通常放关闭资源的代码,除以上代码出现System.exit(0)系统退出,finally里代码不执行)

throws 声明可能出现的异常,用在方法上。
throw  不处理异常,想上抛出异常,用在内部
}
作者: a569609054    时间: 2014-3-19 13:28
throw定义在函数内,用于抛出异常对象。
throws定义在函数上,用于抛出异常类,可以抛出多个用逗号隔开。
异常处理语句:
try
{
        需要被检测的代码
}
catch ()
{
        处理异常的代码
}
finally
{
        一定会执行的代码
}
异常的注意事项:
                在子父类覆盖时:
                1,子类抛出的异常必须是父类的异常的子类或者子集、
                2,如果父类或者接口没有异常抛出时,子类覆盖出现异常,只能try处理不能抛出。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2