前端调用接口时,失败不是一种情况,而是一组情况。用户未登录、权限不足、参数校验失败、业务规则不允许、网络断开、服务器异常,这些都需要不同处理。如果全部变成“请求失败,请稍后重试”,用户不知道自己该登录、修改输入,还是等待系统恢复。
一、先按错误来源分类
认证类错误通常需要引导登录或刷新身份;权限类错误需要告诉用户没有操作资格;业务校验错误要回到具体字段或操作;网络异常要提示连接问题;系统错误则需要保留错误信息并避免误导用户。分类清楚以后,拦截器和页面逻辑才能各司其职。
二、全局拦截器不要吞掉业务语义
请求拦截器适合处理通用问题,比如 token 失效、统一错误格式、网络异常提示。但具体页面仍然需要拿到业务错误。例如表单字段错误、库存不足、状态已变化,这些信息如果被全局 toast 吞掉,页面就无法给出正确反馈。
接口错误处理的目标,是让用户知道发生了什么,以及下一步能做什么。
三、错误上报也要有边界
不是所有错误都应该上报。用户输错密码、表单校验失败、权限不足都属于可预期业务结果,不应该进入系统异常统计。真正需要上报的是 5xx、网络层异常、无法恢复的前端异常和不符合预期的状态。否则错误后台会被业务行为淹没。
- 认证、权限、业务、网络和系统错误要分层处理。
- 全局拦截器处理共性,页面保留业务语义。
- 用户可修正的错误要给出明确下一步。
- 错误上报只覆盖真正需要排查的异常。
前端错误处理做得细,用户会少走弯路,开发也能更快定位线上问题。它不是边角逻辑,而是产品可靠性的一部分。