Java : try catch 包围的代码多一点好还是少一点好?

2017-08-28 18:30:14 +08:00
 guyeuro

譬如

FileInputStream in;
try{
   in = new FileInputStream(fileName);
}catch(e){
    ...
}

if(in !=null){
   ...
   in.read();
}

...

if(in !=null){
   ...
   in.write();
}

还是

try{
   in = new FileInputStream(fileName);
   
   。。。
   。。。
   in.read();
   ...
   ...
   in.write();
}catch(e){
    ...
}

BTW:

如果有多处可能抛出异常,是用一个 try-catch,集中处理,还是每个异常可能点都用一个 try-catch 好?

2310 次点击
所在节点    问与答
7 条回复
xCris
2017-08-28 18:31:01 +08:00
为啥是王者荣耀?
verrickt
2017-08-28 18:39:23 +08:00
道理我都懂,为啥不用 try with resources?
当年学 java 的时候被文件 IO 那块嵌套的 try catch 恶心的不行
kaneg
2017-08-28 18:51:56 +08:00
try 次数越少越好。

能用一个就不要用多个
kokutou
2017-08-28 19:00:23 +08:00
当年初学直接 mian 函数接着一个 try-catch,所有函数都 throw 2333

当然现在就是 try with resources 了:
https://docs.oracle.com/javase/tutorial/essential/exceptions/tryResourceClose.html
movistar
2017-08-28 19:08:30 +08:00
取决于需不需要 FAIL FAST
如果你前面的流程挂了,后面的流程还能执行,那就多个 try catch 分开
如果前面挂了整个流程就挂了,那就写一个 try catch.....
这个和 try with resources 没啥关系
ihuotui
2017-08-28 19:35:09 +08:00
看有没有必要,不是多与少。还有就是封装异常,保持整洁,即使函数增加功能,也不怕调用函数改变。
其实还是要多看书多思考。
ihuotui
2017-08-28 19:35:39 +08:00
@ihuotui 整洁代码之道,单元测试 junit,重构。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/386430

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX