如果程序中可能会抛出n种异常,我把每种异常分别捕获和只捕获Exception又什么区别?除了分别捕获可以分别处理这个区别之外换句话说,我在所有捕获异常的地方都写catch(Exception e)会不会有什么问题?

解决方案 »

  1.   

    确切的说,不知道你要表达什么意思
    不过catch(Exception e)是可以的,但是不科学
    最好是分别捕捉,在最后在加上catch(Exception e)
      

  2.   

    try{}catch(Exception e){e.....}
    try{}catch{}catch{}catch{}catch{}
      

  3.   

    只捕获Exception是可以的,因为他是所有异常的父类
    打印信息的话用e.printStackTrace()就好了
    e.printStackTrace()是打印整个Exception轨迹栈,(信息比较详细)
    而System.out.print(e)只是打印了e.toString()方法返回的结果。
    明白了吗?
      

  4.   

    只捕获 Exception  和 捕获 特定的异常都不会引起问题!
    关键是我们要针对异常去解决问题或给用户一个提示,
    例如 
      1.你在建立数据库联接的时候出现异常,然而你可以捕获DBConnectionException异常然后进行操作,或给用户报数据库联接错误!如果你只单单只捕获了Exception异常,那就是说你无法判断到底是什么出错了!
      2.在MVC架构中我的习惯往往 在M、C层只简单的将异常抛出 Exception,在V视图层,我会建立一个所有异常对应的抱错信息还解决办法,然后统一解决他们!