关于异常捕获问题:
1。不是异常如果没有被扑获(catch),那么程序就会在在发生异常的地方停止?
2。 void cleanupConnections() throws Exception{
}
和
在try{}catch(){}
中扑获异常有什么不同的地方,即使用try{}catch(){}的好处是什么?
3。如果我扑获异常的时候笼统的使用一个Exception,而不是具体到什么异常,比如IOException,SQLException,这样的弊端在哪里?
------解决方法--------------------------------------------------------
1>是,然后向上层传递直至被捕获.
2>throws Exception只是声名了一下,告诉调用他的人,要捕获异常,而try{}catch(){}直接就捕获了.
调用时就不 用考虑了.
3>弊端就是你分析错误的时候就不知道具体是什么异常了.
------解决方法--------------------------------------------------------
异常若被捕获,程序将执行CATCH中的语句,如果程序有FINALLY语句,还将执行FINALLY中的语句,然后返回调用它的程序,如果没有程序调用它,程序将退出,始终不会执行异常发生处与CATCH之间的语句.
------解决方法--------------------------------------------------------
1。不是异常如果没有被扑获(catch),那么程序就会在在发生异常的地方停止?
是的,但如果有finally语句,只直接用出异常那行跳到finally语句里执行.
2。 void cleanupConnections() throws Exception{
}
和
在try{}catch(){}
中扑获异常有什么不同的地方,即使用try{}catch(){}的好处是什么?
第一种直接扔给了调用者,第二种是自己拿到可以做相应的处理,比如写文件出错,可以将文件删掉之类的.
3。如果我扑获异常的时候笼统的使用一个Exception,而不是具体到什么异常,比如IOException,SQLException,这样的弊端在哪里?
对异常的扑获有一个原则就是不能处理的异常不要去捕获,如果你只笼统的使用一个Exception,那么通常情况下你就不知道你拿到的是什么异常,也谈不上处理了.