A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© yunfeng482 中级黑马   /  2016-3-13 12:05  /  855 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

对于异常无用着实很常见。
例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. *
复制代码



2 个回复

倒序浏览
这个确实是,之前还真没想过
回复 使用道具 举报
真实开发中肯定是要对每个可能发生的异常进行具体捕获的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马