自动捕获 BlazeDS 远程处理方法引发的所有异常?

Posted

技术标签:

【中文标题】自动捕获 BlazeDS 远程处理方法引发的所有异常?【英文标题】:Automatically catch all exceptions thrown by BlazeDS remoting methods? 【发布时间】:2010-07-07 13:55:54 【问题描述】:

有没有一种方法可以自动捕获 BlazeDS 远程处理方法抛出的所有(未经检查的)异常,而无需将每个异常包装在最后的 try/catch 块中?我的代码根据需要捕获任何已检查的异常,但我希望最终不会将杂散的 NullPointerExceptions、ArrayIndexOutOfBoundsExceptions 等设置到客户端。

【问题讨论】:

【参考方案1】:

我建议使用 Spring-BlazeDs 集成项目。好处之一就是ExceptionTranslator机制可以解决你的问题,我写了一篇文章here。

如果您不能使用 Spring,您可以查看 BlazeDS 源代码并添加您自己的拦截器。 BlazeDS 代码简洁明了,不难理解。

【讨论】:

谢谢!不幸的是,我们的项目没有使用 Spring,但我会在 BlazeDS 源代码中做更多的探索,看看我能找到什么。【参考方案2】:

看看Thread.setDefaultUncaughtExceptionHandler,我想它会给你你想要的。

【讨论】:

谢谢,我不知道这一点,但我认为它不适用于我的情况。我的代码中未捕获的所有异常都将被 BlazeDS 捕获,并且不会弥补该默认处理程序。我想要一种在 Blaze 获取它们之前捕获它们的方法,或者如果 BlazeDS 支持的话,可能需要某种过滤器。 你可能会看看你可以用面向方面的编程来完成什么。 (例如 AspectJ)。它非常强大,可以让你在编译时或运行时做很多事情。

以上是关于自动捕获 BlazeDS 远程处理方法引发的所有异常?的主要内容,如果未能解决你的问题,请参考以下文章

AppDomain.AssemblyLoad 事件捕获事件处理程序中引发的所有异常

java之八 异常处理

PL/SQL 引发处理异常

如何从 wxPython 应用程序中捕获所有异常?

在使用Flex Builder 3和BlazeDS时,如何解决“Server.processing”错误的“NullPointerException”?

如何实现通用 do-try-catch 块以捕获操作中引发的所有错误