zoukankan      html  css  js  c++  java
  • java异常处理常见处理

    反例之一:丢弃异常
    结论一:既然捕获了异常,就要对它进行适当的处理。不要捕获异常之后又把它丢弃,不予理睬。


    反例之二:不指定具体的异常
    结论二:在catch语句中尽可能指定具体的异常类型,必要时使用多个catch。不要试图处理所有可能出现的异常。


    反例之三:占用资源不释放
    结论三:保证所有资源都被正确释放。充分运用finally关键词。


    反例之四:不说明异常的详细信息
    结论四:在异常处理模块中提供适量的错误原因信息,组织错误信息使其易于理解和阅读。


    反例之五:过于庞大的try块
    结论五:尽量减小try块的体积。


    反例之六:输出数据不完整
    结论六:全面考虑可能出现的异常以及这些异常对执行流程的影响。

    OutputStreamWriter out = ...
    java.sql.Connection conn = ...
    try {
     Statement stat = conn.createStatement();
     ResultSet rs = stat.executeQuery(
      "select uid, name from user");
     while (rs.next())
     {
      out.println("ID:" + rs.getString("uid") + ",姓名: " + rs.getString("name"));
     }
    }
    catch(SQLException sqlex)
    {
     out.println("警告:数据不完整");
     throw new ApplicationException("读取数据时出现SQL错误", sqlex);
    }
    catch(IOException ioex)
    {
     throw new ApplicationException("写入数据时出现IO错误", ioex);
    }
    finally
    {
     if (conn != null) {
      try {
       conn.close();
      }
      catch(SQLException sqlex2)
      {
       System.err(this.getClass().getName() + ".mymethod - 不能关闭数据库连接: " + sqlex2.toString());
      }
     }
    
     if (out != null) {
      try {
       out.close();
      }
      catch(IOException ioex2)
      {
       System.err(this.getClass().getName() + ".mymethod - 不能关闭输出文件" + ioex2.toString());
      }
     }
    }
  • 相关阅读:
    Pytorch:常用工具模块
    Pytorch: torch.nn
    流行框架阶段·概览
    jquery/js实现一个网页同时调用多个倒计时(最新的)
    用js判断页面刷新或关闭的方法
    js中substr,substring,indexOf,lastIndexOf,split 的用法
    jsonp案例
    CSS布局奇技淫巧:各种居中
    IntelliJ Idea 常用快捷键列表
    jquery中attr和prop的区别
  • 原文地址:https://www.cnblogs.com/sanxinglan/p/5063708.html
Copyright © 2011-2022 走看看