作家
登录

深入探讨Java中的异常与错误处理

作者: 来源: 2017-05-11 10:48:14 阅读 我要评论

4、java.lang.ClassNotFoundException

我们留意一下这个办法和上一个办法的差别,下一小我可能习惯更好一点,及早的封闭reader。然则往旧事与愿违,因为在reader.close()以前异常随时可能产生,如许的代码构造不克不及预防任何异常的出现。因为法度榜样会在异常出现的处所彪炳,后面的代码不克不及履行(这在膳绫擎应经用实例证实过)。这时我们就可以用try…finally来改革:

  1. public void readFile() { 
  2.      BufferedReader reader = null
  3.      try { 
  4.            try { 
  5.                  reader = new BufferedReader(new InputStreamReader(new FileInputStream("file"))); 
  6.                  // do some other work 
  7.                  // close reader 
  8.            } finally { 
  9.                  reader.close(); 
  10.            } 
  11.       } catch (FileNotFoundException e) { 
  12.            e.printStackTrace(); 
  13.       } catch (IOException e) { 
  14.            e.printStackTrace(); 
  15.       } 
  16.  

及早的封闭资本是一种优胜的行动,因为时光越长你忘记封闭的可能性越大年夜。如许在合营上try…finally就包管万无一掉了(不要嫌麻烦,java就是这么中规中矩)。

再说一种情况,假如我想在构造办法中打开一个文件或者创建一个JDBC连接,因为我们要在其他的办法中应用这个资本,所以不克不及在构造办法中及早的将这个资本封闭。那我们是不是就没辙了呢?谜底是否定的。看一下下面的例子:

  1. public class Rethrow { 
  2.      public static void readFile(String file) throws FileNotFoundException { 
  3.      try { 
  4.           BufferedInputStream in = new BufferedInputStream(new FileInputStream(file)); 
  5.      } catch (FileNotFoundException e) { 
  6.           e.printStackTrace(); 
  7.           System.err.println("不知道若何处理该异常或者根本不想处理它,然则不做处理又不合适,这是从新抛出异常交给上一级处理"); 
  8.           //从新抛出异常 
  9.           throw e; 
  10.      } 
  11. public static void printFile(String file) { 
  12.      try { 
  13.           readFile(file); 
  14.      } catch (FileNotFoundException e) { 

      推荐阅读

      当今世界最有价值的资源是什么?不是石油,而是数据

    《经计揭捉?人》揭橥封面文┞仿称,数据已经代替石油成为当当代界最有价值的资本,而面对这一新的变更,反垄断监管者也应当改变思维。以下为原文内容:特斯拉收集的无人驾驶汽车数据越多>>>详细阅读


    本文标题:深入探讨Java中的异常与错误处理

    地址:http://www.17bianji.com/lsqh/35144.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)