如何解决java rmi服务器端异常处理
| 您是否有可能记录服务器端异常?请在服务器端考虑以下代码:catch (Exception ex) {
throw new IllegalStateException (ex);
}
该异常是由客户端调用引起的。当然,客户端会注意到异常。有什么办法可以在服务器端以某种方式处理它,而不会捕获运行时异常?某种处理程序,例如,允许我记录异常的stacktrace?
有任何想法吗?
解决方法
您可以将服务器实例包装为ѭ1,并在代理中实现服务器端日志记录。只需确保代理已导出,而不是服务器实现即可。
, 有RMI系统属性可以自动为您记录服务器端异常。请参阅RMI主页上的链接。
, 通常,顶级服务器方法的值为2。
如果使用try-catch异常在此方法中包装\“ do it \”代码,则可以将其记录在该位置,但仍将其抛出。
public Response myServerTopLevelMethod() throws Exception {
try {
myImplCode();
catch (Exception e) {
Log.error(e);
throw e;
}
}
现在,您可以选择要做什么。基本选项是:
您可以重新抛出异常(如上所述)
您可以表现不错,并返回“发生了一些不好的事情”响应-就像许多Web服务器一样
这是选项2的示例:
public Response myServerTopLevelMethod() throws Exception {
try {
myImplCode();
catch (Exception e) {
Log.error(e);
return new Response(\"Yikes! Something exploded... we\'ll look into it.\");
}
}
顺便说一句,选项1的“对数+抛出”是您要执行此操作的几次机会之一;在顶级方法上。在其他时候,通常应该记录日志或抛出日志,而不是两者都记录。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。