黑马程序员技术交流社区

标题: 异常的误用 [打印本页]

作者: yunfeng482    时间: 2016-3-13 12:05
标题: 异常的误用
对于异常无用着实很常见。
例1、用一个Exception来捕抓所有的异常,颇有“一夫当关万夫莫开”的气魄,不过这也是最傻的行为。
  1. import java.io.BufferedReader;
  2. import java.io.FileInputStream;
  3. import java.io.IOException;
  4. import java.io.InputStreamReader;
  5. import java.sql.Connection;
  6. import java.sql.DriverManager;
  7. import java.sql.SQLException;

  8. public class ExceptionDemo1 {

  9.         /**
  10.          * @param args
  11.          */
  12.         public static void main(String[] args) {
  13.                 // TODO Auto-generated method stub

  14.         }
  15.        
  16.         public void readFile3(String file)
  17.         {
  18.                 BufferedReader reader = null;
  19.                 Connection conn = null;
  20.                
  21.                 try{
  22.                 reader = new BufferedReader(new InputStreamReader(new FileInputStream(file)));
  23.                
  24.                 conn = DriverManager.getConnection("");
  25.                 }catch(Exception e){
  26.                         e.printStackTrace();
  27.                 }finally{
  28.                         try {
  29.                                 reader.close();
  30.                                 conn.close();
  31.                         } catch (Exception e) {
  32.                         e.printStackTrace();
  33.                         }
  34.                 }
  35.         }

  36. }
  37. /*
  38. * 1.从异常角度来说这样严格的程序确实是万无一失,所有异常都能捕获
  39. * 但站在程序员的角度来说,万一出现了异常却不能分辨到底是什么引起的。是IO还是JDBC
  40. * 上面的例子是一个反例,实际中一定清楚认识。
  41. * 2.我们希望程序发生异常时候尽可能提供意外的信息,包括发生的位置、描述、和原因等。那样才能更清楚的解决问题。
  42. * 而不是简单的e.printStackTrace();
  43. * 3.try block写的简短,不要什么东西都仍在这里,尽可能对可能发生异常的位置进行try catch  尽可能为每个异常做try catch
  44. *
  45. *
复制代码




作者: xgm    时间: 2016-3-13 12:29
这个确实是,之前还真没想过
作者: Q的感动    时间: 2016-3-13 15:07
真实开发中肯定是要对每个可能发生的异常进行具体捕获的




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2