我有一种方法来保存每个操作的时间信息:
public void queueTimerInfo(long start, long end, String msg) {
try {
timer.queue(start, end, msg);
} catch (InterruptedException e) {
Logger.info(e.getMessage());
}
}
Run Code Online (Sandbox Code Playgroud)
我在每次操作后调用上面的方法.重要的是操作本身,而时间只是次要任务.这就是为什么我决定在方法失败时不做任何事情,除了记录它.
但我总是被告知在不管理异常的情况下进行日志记录是一种不好的做法.那么我应该如何重写上面的代码呢?
如果您知道后果,即timer.queue()呼叫可能被中断而不对数据进行排队,并且您可以使用它,则可以忽略该异常.与大多数规则一样,您需要知道何时打破它们.
但是,我会在catch块中通过注释来记录您的决定,以便后来维护代码的人知道不处理异常不是疏忽,而是故意的决定.
但我总是被告知在不管理异常的情况下进行日志记录是一种不好的做法
"管理"是什么意思?反思他们?盲目地遵循步骤1,2,3,因为"zOMG抛出异常!! 111"?
如果你盲目地遵循最佳实践和其他各种建议,无论你的背景如何,那么你可能最终会遇到真正有问题和尴尬的决定.不要因为这是最好的做法而做事.承认最佳实践,但同时确保它们在您的情况下确实有意义.
问问自己:这个异常会有所不同吗?它违反了合同吗?它是否会改变您的申请流程?你绝对不希望这样的事情发生,如果是的话,那么情况是真正的无与伦比的,你应该真正对付它不知何故?
如果没有区别等等,那么只记录它是完全可以接受的.这真的取决于您的背景和您的例外的重要性.
LE:当然,正如Thomas建议的那样,您可能想要记录您的决定.
| 归档时间: |
|
| 查看次数: |
5043 次 |
| 最近记录: |