控制异常是否被静态布尔吞噬

pgs*_*rom 1 java exception-handling

因此我们开发此产品的几个人正在与一个非常不稳定的服务器进行通信.它经常返回非常奇怪和损坏的数据.在测试期间,我们希望产生的崩溃是响亮的,所以我们发现它们.但是每隔一天我们都需要向潜在客户展示我们的产品.如果我们只是吞下它们,那么错误就会被发现.我正在考虑围绕所有服务器通信实现这样的事情,以便在吞咽异常和崩溃之间快速切换:

try {
    apiCall();
} catch (Exception e) {
    if(!SWALLOW_EXCEPTION) {
        throw e;
    }
}
Run Code Online (Sandbox Code Playgroud)

这是一个很棒的想法,还是可以以更好的方式完成?

Chr*_*ail 6

我建议使用像SLF4J,java.util.logging或Log4j这样的Logger .任何"调试"但仍需要跟踪的日志消息都可以根据其严重性设置为DEBUG,INFO或WARN级别.您可以为"错误"级别保存的实际错误.

当您对客户进行演示时,请将日志级别设置为"错误",以便它们看不到所有内容.但是,当您正常运行时,将其设置为一个级别以捕获所需的日志记录级别.

吞咽异常从来都不是一种好习惯.通过使用记录器,如果它给你太多细节,你可以隐藏它们.如果需要,您可以随时访问它们而无需重新编译.