定义错误代码,数字还是字符串?

问题描述 投票:0回答:4

当我使用企业应用程序时,经常会遇到一些错误,需要咨询帮助台。我发现许多应用程序仍然倾向于使用数字作为错误代码而不是人类可读的字符串。鉴于大多数企业应用程序都是用 java/C# 等现代语言编写的,我无法弄清楚使用数字错误代码有什么好处。

那么问题来了,对于企业应用来说,是否有一个通用的错误码定义模式?有什么原因数字比字符串更受欢迎吗?

顺便说一句:我了解使用 REST API 的应用程序可能会使用 http 状态代码作为错误代码,这可以理解为 http 状态代码本身就是数字。但对于其他人,我不明白

java error-handling enterprise
4个回答
3
投票

同时拥有代码(数字或其他形式)和人类可读的内容通常很方便。

该代码使机器可以轻松了解发生了什么(并作为人类的简写),并且与语言和语言环境无关。


2
投票
错误代码以及信息更丰富的字符串的最大好处是,即使您的代码已翻译成您可能无法阅读的另一种语言,也可以查找它们。

下一个最大的好处是,如果有人编写了读取您的错误消息的代码(也许是您自己的公司,以帮助人们管理您的应用程序),那么在开始时提供错误代码对他们来说是非常有帮助的。信息。这既可以加快他们决定要做什么的速度,又可以部分保护他们免受您稍后可能改写消息的风险(这会扰乱搜索消息文本的尝试)。

只要你可靠地坚持下去,任何惯例都可以发挥作用。如果您考虑的是长期和多个产品,您可能希望代码包含一些指示,表明哪些代码(应用程序和/或库和/或其他模块)发出了错误,然后您希望能够快速找到该产品支持表中的错误。

IBM通常使用可识别的字母前缀来标识代码,并使用数字后缀来指示具体消息。其他公司可能会采取不同的做法。

我最近遇到了类似的问题,我决定使用以下规则:

0
投票

类似的错误按类型分组(在 Java 中这些将是异常类)

    每个错误都有一个枚举值来标识它(即错误代码)
  • 每个错误都有人类可读的消息
  • 错误可能有一个原因(在许多情况下,您的错误是由于发生了其他错误而生成的,而该错误就是一个原因)
  • 您可能会争论第二条规则的必要性,因为您可能会出现尽可能多的类型的错误。然而,如果您的系统正在增长,您迟早会发现需要引入新类型的错误,这将需要修改您的 API,而这并不总是可能的,即使可以,也可能不是很容易,因为您将修改您的所有客户端。在这种情况下,枚举错误代码列表更容易维护。

使用

0
投票

我在这里没有看到真正的答案...有很多来源建议您应该始终使用数值,一个例子:
https://www.w3.org/Protocols/HTTP/HTRESP.html

© www.soinside.com 2019 - 2024. All rights reserved.