我总是将“调用函数”的名称作为所有异常消息的前缀。
throw new IllegalArgumentException("setTheNumber: i_number (" + i_number + ") must be greater than zero.");
我想我最初是在几年前查看日志时开始这样做的,除了异常的getMessage()
之外没有任何东西(没有堆栈跟踪)。
另一种可能的情况是当一个异常消息应该出现而不是它实际上被抛出的函数(例如,与我的库的用户更相关)。但是,我不确定它是否足够有效。
使用调用函数为每个异常消息添加前缀是一个好习惯吗?或者只是期望堆栈跟踪始终可用?
感谢您的任何建议。
答案 0 :(得分:5)
最好在发生错误时记录完整的堆栈跟踪,而不用担心方法名称。在特殊情况下应该抛出异常 - 当出现问题时,记录整个跟踪总是更好,这有助于调试问题。