Coding style 是否存在错误/错误代码的标准?

Coding style 是否存在错误/错误代码的标准?,coding-style,standards,web-standards,Coding Style,Standards,Web Standards,我目前正在为国际象棋游戏编写一个API/一些客户端 开发人员应该通过一个脚本(xhrframework.php)访问API,并通过GET提交操作。他们提交操作时可能会出现一些错误(没有发送PHPSESSID,没有有效的PHPSESSID,移动无效,轮到他们了,…) 所以我考虑了如何显示错误的可能性。我想出了一些办法,告诉程序员他犯了一个错误: 以清晰的英语显示错误消息 +:很清楚错误的含义 +:可以添加如何修复此错误的信息 -当前位置由于我的英语不是很好,消息可能会改变 -:消息的长度差别很大

我目前正在为国际象棋游戏编写一个API/一些客户端

开发人员应该通过一个脚本(xhrframework.php)访问API,并通过GET提交操作。他们提交操作时可能会出现一些错误(没有发送PHPSESSID,没有有效的PHPSESSID,移动无效,轮到他们了,…)

所以我考虑了如何显示错误的可能性。我想出了一些办法,告诉程序员他犯了一个错误:

  • 以清晰的英语显示错误消息
    • +:很清楚错误的含义
    • +:可以添加如何修复此错误的信息
    • -当前位置由于我的英语不是很好,消息可能会改变
    • -:消息的长度差别很大-这对C程序员可能很重要
  • 通过英语中的ab错误消息常量-类似于错误的PHPSESSID、缺少PHPSESSID、无效移动、未轮到您。。。
    • +:这对一个人来说是可以理解的
    • 0:几乎可以肯定消息不会更改
    • -:消息的长度可能略有不同
  • 通过一个错误代码,在文档中有一个表,程序员可以在其中找到错误代码的含义
    • +:错误代码将是常量
    • +:每个错误代码的长度可能相同
    • -字体很神秘
  • 我认为第三种解决方案可能是个好主意,因为xhrframework.php应该只由已经看过API文档的程序员访问

    现在我想知道是否存在Web API错误消息的标准。其他人(如谷歌地图API)是如何解决这个问题的?我应该简单地输出一个内容为“ERROR:004”的空白页面,还是不填充“ERROR:4”

    哪些错误应该得到哪些数字?ist是否有意义按数字对错误进行分组,例如,所有以1开头的错误都是身份验证错误,所有错误都有两个游戏逻辑错误?从错误1开始并使用每个数字是否更好

    谷歌地图API

    如果我访问GoogleMapsJS-API,它会返回Java脚本,并以清晰的德语显示一条消息(我想我住在德国)


    如果我使用Google静态地图API,它会以明文形式返回一条消息。

    没有标准,为什么要有标准?使用您的接口的程序员已经必须了解这一点,这可能是自定义的,因此需要编写自定义错误处理代码只是软件包的一部分

    我建议你制定一个合理的格式,你会坚持下去。您可以使用每个世界中最好的,并在您返回的内容中包含几条信息,可能大致如下:

    [one of "ERROR" or "WARNING" or "MESSAGE"]
    [error code with no spaces, eg "BAD_MOVE"]
    [optional human readable string]
    

    这样,如果发明了一种新的错误类型,而老客户并不理解,他们仍然可以识别出回报以“错误”开头,并知道出了什么问题;通过解析错误代码(不要使用整数,这是浪费每个人的时间),如果程序员考虑了错误,他们可以采取适当的措施。最后,如果您为所选错误输入友好字符串,则可以很容易地向用户展示一些好的内容,或有助于调试。

    大多数API服务遵循HTTP错误代码系统,其中包含不同类型错误的错误代码范围:

    1xx: Informational - Request received, continuing process 
    2xx: Success - The action was successfully received, understood, and accepted 
    3xx: Redirection - Further action must be taken in order to complete the request 
    4xx: Client Error - The request contains bad syntax or cannot be fulfilled 
    5xx: Server Error - The server failed to fulfil an apparently valid request
    

    在API上下文中,您通常使用4xx值来表示与请求验证相关的错误条件。49x通常用于安全错误条件

    我只知道:谢谢你,弗洛。由于我不是在Windows机器上编程,这对我帮助不大,但它让我了解了如何构造自定义错误消息。我以前没有想过给我的错误代码增加严重性。或者,对于世界上一半的非MS用户,我们有[这仅用于请求,对吗?因此请求可能会成功(2xx)但可能仍然存在错误。在这种情况下,我将遵循@Nicholas Wilson的回答。您可以使用相同的编号方案来处理错误。因此,您已接受请求,但在处理请求时遇到错误。然后,您处理请求状态的请求,然后返回处理错误。