我有一个Java类,有几种方法,如下所示
public void someMethod (Collection<object> objects) throws Exception这个程序有时会像Oracle死锁一样抛出java.sql.SQLException,但是在服务器端,我没有看到一个跟踪文件。
是否可以将方法签名修改为更具体的内容,如
public void someMethod (Collection<object> objects) throws SQLException然后在方法中尝试中准备好的语句,尝试捕获块,它会帮助捕获实际的异常吗?
发布于 2011-08-20 09:15:43
将方法声明为throws Exception并不是很好的实践。您应该明确说明您的方法抛出了哪些异常,因此throws SQLException更好,更具有描述性。
无论您使用的是throws Exception还是throws SQLException,在该方法调用周围的try/catch块都能工作。如果需要捕获死锁,则捕获SQLException并在那里处理它。
如果您在那里不处理它,那么这个异常将使堆栈冒泡,直到它被捕获,或者程序(或线程)退出。
https://stackoverflow.com/questions/7129104
复制相似问题