将错误代码中的行号记录给用户是一种好习惯吗?
Is it a good practice to log line number in error code to the user?
我的任务是将行号记录为向用户显示的错误代码的一部分。目前我正在使用:
StackTraceElement[] stackTraceElement = e.getStackTrace();
lineNumber = stackTraceElement[0].getLineNumber();
我知道上述方法可能会失败,具体取决于 JVM 版本。
另外,我在 PatternLayout
中看到 "Generating caller location information is extremely slow. Its use should be avoided unless execution speed is not an issue.".
由于此消息将呈现给用户,我是否仍应将行号记录为错误代码的一部分?我试图了解这种方法的优缺点。此外,log4j 警告仅适用于其自身的实现,还是一般针对位置信息的警告?
您应该向用户展示的是出了什么问题以及他可以采取什么措施(如果有的话)。行号信息需要可用,例如通过 'More details' 按钮,以防他需要提出支持请求,但您不想吓到他或预先将其混淆。看看这里有多少堆栈跟踪被误读或完全被忽略,这个社区应该是计算机程序员。
嗯,一般来说你的程序应该报告两种错误:
- 针对用户的错误(当用户没有按照他的预期去做时),实际上应该更好地称为 "feedback" 以帮助他为您的程序提供正确的数据(这很好用户体验实践)。
- 因为一个bug而产生的错误,其实不是针对用户,而是你开发者,遗憾的是通过用户。那么是的,记录行号可能是个好主意(或者给你的错误唯一的names/identifiers,这样你就可以很容易地追踪它是从哪里发送的)。但更好的办法是使用框架通过 Internet 直接向您报告此类问题(最好先征得许可)。
一般来说,如果您的程序没有错误,并且可以接收所有输入,并为您提供有关如何使用该应用程序的提示,那就更好了。如果您希望用户购买您的产品等,这将为用户提供更好的体验。如果您的程序确实出错,则用户知道行号将无济于事。然而,你会想知道行号,所以你应该让它显示某种消息,告诉用户在错误发生时通过电子邮件向你发送堆栈跟踪。或者您可以让它自动报告错误消息并通过电子邮件发送给您。
抱歉,我有点晚了,我不清楚问题在问什么,所以我将其作为评论发布,但显然这是一个可以接受的答案。
我的任务是将行号记录为向用户显示的错误代码的一部分。目前我正在使用:
StackTraceElement[] stackTraceElement = e.getStackTrace();
lineNumber = stackTraceElement[0].getLineNumber();
我知道上述方法可能会失败,具体取决于 JVM 版本。
另外,我在 PatternLayout
中看到 "Generating caller location information is extremely slow. Its use should be avoided unless execution speed is not an issue.".
由于此消息将呈现给用户,我是否仍应将行号记录为错误代码的一部分?我试图了解这种方法的优缺点。此外,log4j 警告仅适用于其自身的实现,还是一般针对位置信息的警告?
您应该向用户展示的是出了什么问题以及他可以采取什么措施(如果有的话)。行号信息需要可用,例如通过 'More details' 按钮,以防他需要提出支持请求,但您不想吓到他或预先将其混淆。看看这里有多少堆栈跟踪被误读或完全被忽略,这个社区应该是计算机程序员。
嗯,一般来说你的程序应该报告两种错误:
- 针对用户的错误(当用户没有按照他的预期去做时),实际上应该更好地称为 "feedback" 以帮助他为您的程序提供正确的数据(这很好用户体验实践)。
- 因为一个bug而产生的错误,其实不是针对用户,而是你开发者,遗憾的是通过用户。那么是的,记录行号可能是个好主意(或者给你的错误唯一的names/identifiers,这样你就可以很容易地追踪它是从哪里发送的)。但更好的办法是使用框架通过 Internet 直接向您报告此类问题(最好先征得许可)。
一般来说,如果您的程序没有错误,并且可以接收所有输入,并为您提供有关如何使用该应用程序的提示,那就更好了。如果您希望用户购买您的产品等,这将为用户提供更好的体验。如果您的程序确实出错,则用户知道行号将无济于事。然而,你会想知道行号,所以你应该让它显示某种消息,告诉用户在错误发生时通过电子邮件向你发送堆栈跟踪。或者您可以让它自动报告错误消息并通过电子邮件发送给您。
抱歉,我有点晚了,我不清楚问题在问什么,所以我将其作为评论发布,但显然这是一个可以接受的答案。