方法(远程方法调用)是否应返回一个布尔true值,指示即使抛出所有可能的异常,操作也会成功执行?
例:
在我的java应用程序中有许多CRUD远程方法调用,我捕获所有可能的异常并向调用客户端抛出自定义异常.
我现在应该返回void还是布尔值,因为Exceptions已经隐含地指示了操作的成功或失败?
我有以下代码,使用 hibernate 在错误时引发自定义异常,并且我还想在这种情况下关闭会话,因为除非在客户端计算机上接收到,否则不会捕获异常。
public <T> T get(final Session session, final String queryName) throws RemoteException
{
final Query query = // query using given session ...
try
{
return (T) query.uniqueResult();
}
catch (final HibernateException e)
{
SessionManager.logger.log(Level.SEVERE, "Could not retrieve Data", e);
this.closeSession(session);
throw new RemoteException("Could not retrieve Data");
}
}
Run Code Online (Sandbox Code Playgroud)
现在我有一个帮助器方法,可以关闭会话并引发给定的异常:
public void closeSessionAndThrow(final Session session, final RemoteException remoteException)
throws RemoteException
{
this.closeSession(session);
throw remoteException;
}
Run Code Online (Sandbox Code Playgroud)
现在我想我可以使用以下方法简化上面的代码:
public <T> T get(final Session session, final String queryName) throws RemoteException
{ …Run Code Online (Sandbox Code Playgroud) 正如问题所述,如果我有一个3D Grid of Blocks,那么为一个线程获取全局唯一索引的公式是什么?
让我们将块本身保持为一维.
是否可以通过全局会话或服务器变量来禁用在全局级别上更新主键列的可能性?
还是我需要手动检查每个表中的更新触发器?