在我们的代码中,我们有许多实现相同接口的处理器。
通过在代码中使用spring和一些参数,我们可以找到要调用的IMsgProcessorInbound类的正确具体实现。
当这些具体实现中的任何一个发生异常时,我想在下面的try catch块中捕获该概念。
不幸的是,当在具体实现中引发异常时,永远不会输入该try catch块。
有什么方法可以在下面列出的catch块中捕获异常,而不是用异常处理代码乱扔我所有的具体实现?
还是spring可以为我提供一些错误处理功能?
IMsgProcessorInbound msgProcessor = msgProcessorSelectorInbound.lookupProcessorInbound(args);
try {
msgProcessor.processMsg(fixProcessorArgs);
} catch (Exception e) {
log.error("Exception is: " + e);
}
非常感谢您提供有关此问题的所有帮助。
谢谢
达米安
最佳答案
检查一下;
try {
msgProcessor.processMsg(fixProcessorArgs);
} catch (Throwable e) {
log.error("Exception is: " + e);
}
msgProcessor.processMsg()可能不会引发异常类型。 Throwable类是所有错误和异常的超类。因此,上面的代码应捕获已检查和未检查的异常。
如果您仍然无法进入catch块-那么msgProcessor.processMsg()可能会吞下异常。