日期:2014-05-20  浏览次数:20949 次

菜鸟关于异常的问题
如果程序中可能会抛出n种异常,我把每种异常分别捕获和只捕获Exception又什么区别?除了分别捕获可以分别处理这个区别之外

换句话说,我在所有捕获异常的地方都写catch(Exception   e)会不会有什么问题?


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

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


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