搭网站最怕啥?页面一刷新,白屏加报错,浏览器开发者工具里跳出个 400 或 502,心里直打鼓:这到底哪儿出问题了?很多人第一反应是查服务器、看网络,其实很多时候,问题藏在“应用层错误代码”里。
应用层错误代码是啥?
简单说,就是你写的程序自己抛出来的错误提示。它不像网络断了或服务器崩了那种底层故障,而是你的代码在运行过程中发现“不对劲”,主动告诉你:“兄弟,这数据不对”“用户没登录”“接口参数少了”。这类错误通常通过 HTTP 状态码 + 自定义消息返回给前端。
常见的应用层状态码长这样
别一看到 4xx、5xx 就慌。比如:
- 400 Bad Request:请求发过去了,但格式不对。比如注册时邮箱写成 abc@,少了个域名,后端直接回你 400,提醒参数校验失败。
- 401 Unauthorized:没登录就想看会员页面?不行。这个码就是告诉你,得先认证,比如带上 token。
- 403 Forbidden:你登录了,但权限不够。比如普通用户想删管理员帖子,系统立马给你顶回来。
- 404 Not Found:地址错了,或者资源被删了。不是服务器挂了,是你找的东西不存在。
- 500 Internal Server Error:这个最模糊,属于“程序炸了”。可能是数据库连不上,也可能是代码里有个空指针,没处理好就抛异常了。
自定义错误码更实用
光靠 HTTP 状态码不够细。实际开发中,我们会加自己的错误码,比如:
{
"code": 1001,
"message": "手机号格式不正确",
"data": null
}
这里 code: 1001 是你自己定的规则,前端收到后就知道该提示用户改号码,而不是显示“系统错误”这种让人懵的文案。
举个真实场景
你做个电商站,下单接口。用户点了提交,结果卡住。打开 F12,看到返回:
{
"code": 2005,
"message": "库存不足,无法下单",
"data": {
"available_stock": 0
}
}
这时候你就明白,不是网络问题,也不是服务器宕机,是商品卖光了。前端可以根据 code 显示友好提示,而不是让用户以为系统坏了。
怎么设计好错误码?
别乱来。建议按模块分段,比如用户相关用 1xxx,订单用 2xxx,支付用 3xxx。这样前后端沟通清楚,查日志也快。比如:
- 1001:用户名已存在
- 1002:密码错误
- 2001:订单不存在
- 2005:库存不足
配上清晰 message,谁看都懂。
调试时怎么看?
浏览器 F12 → Network 标签,点具体请求,看 Response 和 Status Code。如果是 JSON 返回,直接看里面的 code 字段。配合后端日志,几分钟就能定位是表单填错、权限不够,还是代码逻辑漏了判断。
搭网站就像修房子,错误码就是墙上的检修口。懂它的含义,出问题不用拆墙,开个盖子就能修。”}