"调用函数"应该是"好"异常消息中的前缀吗?

ali*_*ind 0 java exception-handling exception

我总是把"调用函数"的名称作为所有异常消息的前缀.

throw  new IllegalArgumentException("setTheNumber: i_number (" + i_number + ") must be greater than zero.");
Run Code Online (Sandbox Code Playgroud)

我想我最初是在几年前查看日志时开始这样做的,除了异常之外没有任何东西getMessage()(没有堆栈跟踪).

另一种可能的情况是,异常消息看起来应该被一个非实际的函数抛出(例如,与我的库的用户更相关).但是,我不确定它是否足够有效.

使用调用函数为每个异常消息添加前缀是一个好习惯吗?或者应该只是期望堆栈跟踪始终可用?

谢谢你的任何建议.

use*_*772 5

最好在发生错误时记录完整的堆栈跟踪,而不用担心方法名称.在特殊情况下应该抛出异常 - 当出现问题时,记录整个跟踪总是更好,这将有助于调试问题.