很多情况下,捕捉异常想要很准确,是需要经验,在一段可能产生异常的代码上捕捉异常,比如你上面的代码,执行Class.forName(sDbDriver);就可能会产生找不到类名的情况,又比如sleep时可能会被打断,就catch(InterruptedException e)
看到什么代码就可以判断会有什么可能出异常,这不是很容易,经常的编码才能积累经验
所以最好用catch(Exception e)保险

解决方案 »

  1.   

    唯一的方法是看javadoc文档,察看Exception类的说明。其实,很多种Exception看名字就知道什么时候用。例如ArrayIndexOutOfBoundsException翻成中文就是数组下界超标。有时候实在没把握就catch(Exception e)  Exception是所有异常的父类。你也可以这样:
    catch(Exception e){
    System.out.println(e);
    }
    把e打出来,你就能看到Exception具体是它的哪个子类的异常
      

  2.   

    用eclipse的话,他会自动提示你应该截什么异常
      

  3.   

    在使用的方法有异常抛出时就必须使用 try{}catch(){}进行异常捕获,
    就是某些方法定义时有 throws XXXException 时。
      

  4.   

    俺也不大清楚  看API啦 这个东东在这个时候最有用啦