try没有catch的情况

fxltsbl 2012-12-25 06:17:24
try{
System.out.println("ok");
}finally{
System.out.println("error");
}

try没有catch的情况;
这段代码可以编译并运行;以前没遇到过,很惊奇,为什么能这样?既然能这样,为什么不能只有一个try(试了,只有一个try编译报错)
...全文
396 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
wen2034 2012-12-26
  • 打赏
  • 举报
回复
不catch代表不处理异常 和 System.out.println("ok"); System.out.println("error"); 这样写效果是一样的。
BaronZ 2012-12-26
  • 打赏
  • 举报
回复
引用 4 楼 zhuchao_ko 的回复:
引用 楼主 fxltsbl 的回复: try{ System.out.println("ok"); }finally{ System.out.println("error"); } try没有catch的情况; 这段代码可以编译并运行;以前没遇到过,很惊奇,为什么能这样?既然能这样,为什么不能只有一个try(试了,只有一个try编译报错) 基础啊 基础啊 基础啊 太差了。 ……
???你且解释解释?
isbn888 2012-12-26
  • 打赏
  • 举报
回复
risun88 2012-12-26
  • 打赏
  • 举报
回复
catch 只是用来处理异常,如果try 不发生异常就不执行catch,你没写catch,那表示都不处理,但肯定会执行 finally
wang_huanming 2012-12-25
  • 打赏
  • 举报
回复
这个问题我之前也发现了,同样的疑问,求解答
苦海离乱卐 2012-12-25
  • 打赏
  • 举报
回复
public class ETest { private void tex(){ File file = null; file.delete(); } public static void main(String[] args){ ETest et = new ETest(); try{ et.tex(); }finally{ System.out.println("finally"); } } } 执行结果: finally Exception in thread "main" java.lang.NullPointerException at com.lkl.test.exceptiontest.ETest.tex(ETest.java:8) at com.lkl.test.exceptiontest.ETest.main(ETest.java:14)
宁波朱超 2012-12-25
  • 打赏
  • 举报
回复
引用 楼主 fxltsbl 的回复:
try{ System.out.println("ok"); }finally{ System.out.println("error"); } try没有catch的情况; 这段代码可以编译并运行;以前没遇到过,很惊奇,为什么能这样?既然能这样,为什么不能只有一个try(试了,只有一个try编译报错)
基础啊 基础啊 基础啊 太差了。
stalendp 2012-12-25
  • 打赏
  • 举报
回复
用到的是finally中的模块一定能够执行的特性。如果某段代码一定要执行(不管是否有异常),比如对资源的释放,就应该放在finally模块中。
笑莫问 2012-12-25
  • 打赏
  • 举报
回复
没研究过。try...finally...感觉还是有用的,能保证finally中的语句得到执行,如果没有try,只是finally也是编译不通过的,try...没有catch、finally,try也就没什么意义了
失落夏天 2012-12-25
  • 打赏
  • 举报
回复
没有catch就是不捕获异常,对异常不进行处理而已。 如果只添加一个try的话,那么要try语句就没有什么用了。

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧