A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 韩新凯 中级黑马   /  2012-4-25 14:23  /  2069 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 韩新凯 于 2012-4-25 21:09 编辑

毕老师说异常有三种实现方式:1,try{}catch{}2,try{}catch{]finally{}3,try{}finally{}.
毕老师说,catch是用于处理异常的,如果没有catch就代表异常没有被处理过,如果该异常是检测时异常,那么必须声明,但是try{}finally{}并没有catch,谁能帮我解释一下,谢谢。

评分

参与人数 1技术分 +1 收起 理由
贠(yun)靖 + 1

查看全部评分

7 个回复

倒序浏览

这是它们的工作原理:需要被监测的程序语句序列应包含在一个try代码块中。如果try代码块中有异常发生,那么就要抛出该异常。你的代码可以用catch来捕获这个异常,并且在catch块中加以适当地处理。系统产生的异常会由Java运行时系统自动抛出。如果要手动抛出异常,则使用关键字throw。在一些情况下,从一个方法抛出的异常必须用一个throws语句指定为异常。最后,从try代码块退出时,必须执行的代码要放在一个finally代码块中。
希望对你有帮助

评分

参与人数 1技术分 +1 收起 理由
贠(yun)靖 + 1

查看全部评分

回复 使用道具 举报
try{可能出现异常的代码}finally{总是执行的代码}有异常但是没有被catch,说明异常交给外层处理了,比如用throws关键字声明的语句。
回复 使用道具 举报
想象一种情况,一个try语句出现了5个异常,但是只catch了3个,那么剩下的的2个应该在函数上抛出给调用者处理。
也就是没有catch的异常应该抛出给调用者处理。

这里就很显然了,一个异常都没catch,那就是全部抛给调用者了。在函数上尽情的throws吧。
回复 使用道具 举报
金超 发表于 2012-4-25 16:17
try{可能出现异常的代码}finally{总是执行的代码}有异常但是没有被catch,说明异常交给外层处理了,比如用t ...

那就是说这个问题一定要有catch了?
回复 使用道具 举报
丁佼 发表于 2012-4-25 17:56
想象一种情况,一个try语句出现了5个异常,但是只catch了3个,那么剩下的的2个应该在函数上抛出给调用者处 ...

抛出的异常不是还是要被处理吗?
回复 使用道具 举报
丁佼 黑马帝 2012-4-25 19:59:10
7#
本帖最后由 丁佼 于 2012-4-25 20:00 编辑
韩新凯 发表于 2012-4-25 19:38
抛出的异常不是还是要被处理吗?


函数本身就不用处理了噻,交给上级处理,代码清晰了。

毕老师的视频里有:
授课用的电脑坏了,自己处理不了,直接throws给上级,让张老师负责判断是停课还是换电脑。
他自己的话抛完异常就进finally{倒杯水,等起;}
回复 使用道具 举报
金超 中级黑马 2012-4-25 20:10:38
8#
韩新凯 发表于 2012-4-25 19:37
那就是说这个问题一定要有catch了?

try {
   
  }finally {
   
  }

这样没问题,而且,可不是没有意义哦,因为这样可以保证即使发生了异常,finally里面的代码一定会被执行。

有时候,这个还是非常有用的。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马