Java - 处理来自实现 1 个接口(interface)的具体类的错误

标签 java exception

在我们的代码中,我们有许多实现相同接口(interface)的处理器。 通过在我们的代码中使用 spring 和一些参数,我们查找要调用的 IMsgProcessorInbound 类的正确具体实现。

当任何这些具体实现中发生异常时,我想在下面的 try catch block 中捕获异常。

不幸的是,在具体实现中抛出异常时,这个 try catch block 永远不会进入。

有没有什么方法可以在下面列出的 catch block 中捕获异常,而不是用异常处理代码乱扔我所有的具体实现? 还是 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 类是所有错误和异常的父类(super class)。所以上面应该捕获已检查和未检查的异常。

如果您仍然无法进入 catch block - 那么 msgProcessor.processMsg() 可能正在吞噬异常。

关于Java - 处理来自实现 1 个接口(interface)的具体类的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7337336/

相关文章:

java - 为什么我的代码无法正常工作并出现以下错误?

java - java中同步块(synchronized block)的部分执行

java - 如何使用异常?

java - 方法调用可能会产生 java.lang.nullpointerException

java - 为 Android 应用获取 Spotify API 的访问 token

java - netbeans 和控制台的不同行为

java - 当内存有问题时如何修改大型 Excel 文件

java - 当用户 session 过期或返回 null 时抛出异常

java - Java出现未报告的异常

multithreading - 这是在 Delphi 6 中设置线程名称的正确方法吗?