我有一个Java类,有几个像这样的方法
public void someMethod (Collection<object> objects) throws Exception
这个程序有时会像Oracle死锁一样抛出java.sql.SQLException,但是在服务器端我没看到跟踪文件。
将方法签名修改为更具体的内容(如
)是否可取public void someMethod (Collection<object> objects) throws SQLException
然后在方法中尝试 try catch block 中的预处理语句是否有助于捕获实际异常
答案 0 :(得分:1)
将方法声明为throws Exception
并不是一种好习惯。您应该具体说明您的方法引发的异常,因此throws SQLException
更好,更具描述性。
无论您使用throws Exception
还是throws SQLException
,围绕该方法调用的try / catch块都会有效。如果你需要捕获死锁,那么赶上SQLException
并在那里处理它。
如果你不在那里处理它,那么异常会冒出堆栈,直到它被某个地方捕获,或者程序(或线程)退出。