关于Java的异常处理,请高手赐教!

编程入门 行业动态 更新时间:2024-10-28 02:27:14
关于Java的异常处理,请高手赐教! Java程序在运行时,如果catch到异常,就执行catch语句块,然后跳到final语句块执行,之后立刻退出,是不是这个样呢? 但是,如果catch语句块是空的呢?这个情况好像不会退出程序。请高手赐教! 谢谢各位朋友!真没想到会得到这么多朋友的帮助!特别要提出的是,“beckham1917772”和“我今天上课了”两位朋友的回答给了我很多体会。 其实我有这个疑问还是看视频教程的时候产生的,就是数据库连接用完后,关闭一定要在finally中关闭,那个老师说因为catch到异常程序会退出,有可能造成连接没有关闭……不知道是他没讲明白,还是我理解错误。 经过各位的解答,我明白了,应该是try语句块发生异常,立刻跳去执行相应catch和finally,这样,会造成try语句块里发生异常代码之后的语句无法得到执行;当然,如果catch到致命错误,程序会立刻退出(这时会不会执行finally呢?我自己试试)。

最满意答案

try { //执行的代码,其中可能有异常。一旦发现异常,则立即跳到catch执行。否则不会执行catch里面的内容 } catch { //除非try里面执行代码发生了异常,否则这里的代码不会执行,如果catch是空的,就继续执行finally中的代码} finally { //不管什么情况都会执行,包括try catch 里面用了return ,可以理解为只要执行了try或者catch,就一定会执行 finally } 程序会不会退出与catch是不是空的没什么必要的关联。只要不是致命错误,仍然可以继续运行,否则如果是致命错误无法继续运行则会跳出。 补充:可能是老师说的不够详细。试想,如果没有finally这个块,那么你的关闭流的代码写在哪里?写在try中呢,那么一旦有异常了没有执行到关闭的代码,那么流是不会关闭的。写在catch中呢,如果没有异常,关闭流代码依然不会执行。所以最好的方法就是写在finally中,这样无论是否有异常,只要程序执行过了我们想要的部分,就要关闭流以达到节省资源,提高效率的目的。

更多推荐

本文发布于:2023-07-31 06:32:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1341870.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:请高手   异常   Java

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!