【发布时间】:2010-09-24 00:50:00
【问题描述】:
理论上,最终用户永远不会看到内部错误。但在实践中,理论和实践是不同的。所以问题是向最终用户展示什么。现在,对于完全非技术用户,您希望尽可能少地显示(“单击此处提交错误报告”之类的东西),但对于更高级的用户,他们会想要知道是否有解决方法,是否已经知道了一段时间等。因此,您还希望包含一些关于问题所在的信息。
执行此操作的经典方法是使用文件名:行号的断言或使用相同的堆栈跟踪。现在这对开发人员来说是件好事,因为它把问题指向了他;但是它对用户来说有一些明显的缺点,特别是它非常神秘(例如不友好)并且代码更改会更改错误消息(谷歌搜索错误仅适用于此版本)。
我计划编写一个程序来解决这些问题。我想要的是一种将唯一身份附加到每个断言的方法,这样编辑断言周围的代码不会改变它。 (例如,如果我将它剪切/粘贴到另一个文件,我希望显示相同的信息)有什么想法吗?
我正在考虑的一种方法是对错误进行枚举,但如何确保它们永远不会在多个地方使用?
(注意:对于这个问题,我只查看由编码错误引起的错误。而不是像错误输入这样合法发生的事情。OTOH 这些错误可能会引起一些兴趣整个社区。)
(注 2:有问题的程序将是在用户系统上运行的命令行应用程序。但同样,这只是我的情况。)
(注 3:目标语言是 D 和 I'm very willing 以深入了解 meta-programming。非常欢迎其他语言的答案!)
(注 4:我明确希望不使用实际代码位置,而是使用某种符号名称来表示错误。这是因为如果代码以任何方式更改,代码位置也会发生变化。)
【问题讨论】:
标签: error-handling user-experience error-reporting