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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 周洋 黑马帝   /  2012-3-24 17:00  /  1812 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

“如果catch块中除throw 异常外没有任何处理,则不应该写该try/catch块。”是什么意思?

7 个回复

倒序浏览
“如果catch块中除throw 异常外没有任何处理,则不应该写该try/catch块。”主要还是说,如果你捕获了一场,一定要在catch块里面做一些操作,否则没有意义!这个是try/catch需要注意的地方(很多人都不在意这些的,没有好的习惯,catch块里什么都不写!!!
回复 使用道具 举报
需要看看是什么异常,有的异常你不处理直接抛给虚拟机,但是虚拟机又 处理不了就会报错,所以自己捕获了异常就应该处理一下
回复 使用道具 举报
“如果catch块中除throw 异常外没有任何处理,则不应该写该try/catch块。”是什么意思?

   如果是一个方法在catch 直接throw 就是 将异常抛给了调用这个方法的函数, 让能处理的 处理。
  如果主函数也抛的话 就没有办法处理的异常  交给虚拟机处理了。
异常时为了对象更安全。
回复 使用道具 举报
我是这样理解的,意思是说如果你抛出异常了,然后
try
{
}
catch(Exeception e)
{
}
而在catch快里面没有做任何处理,那try/catch写出来没有意义,因为不做处理,
不知道到底哪里有问题
回复 使用道具 举报
catch语句中除了抛出异常外没有任何处理,就不应该写try{}catch(){}语句。为什么这样说呢?
因为既然没有异常处理,则不必要让代码冗余;而.try/catch代码造成的负担比普通代码要高,运行效率也比较低。一般把情况写到logger里面,好让我们知道错在哪里。
回复 使用道具 举报
本帖最后由 江远云 于 2012-3-24 21:44 编辑

“如果catch块中除throw 异常外没有任何处理,则不应该写该try/catch块。”是什么意思
  意思是说如果catch块里只有异常类型声明//圆括号里的语句,没有异常处理的代码//大括号里的语句,那样就不知道哪里发生异常,可以说是废话。这样就没有意义,尽量在catch块里面打印一些语句,提示究竟是哪里发生了什么异常。
这是没有异常处理的代码
  "try{
   }catch(Exception e){}
这是有异常处理的代码
  "
  "try{
   }catch(Exception e)
{System.out.println“复活币用光了,请拿钱来”}//这样,如果哪个地方出了问题,一看就知道是哪里出了错误

  
回复 使用道具 举报
李柯 中级黑马 2012-3-24 22:03:06
8#
异常处理的基本格式:try{  需要被检测的代码; } catch(异常类  变量) { 处理异常的代码;} finally {  一定会执行的语句;}
如果在catch中没有进行任何处理而又将其抛出,那么就没有必要try catch了;而如果是进行了处理而又抛出了另一种异常这时可以的。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马