同步错误、Promise 拒绝和全局异常应该怎样处理?
参考答案
try/catch 只能捕获其执行范围内实际抛出的异常;在之后执行的计时器回调中抛错,不会被注册计时器时的 try 捕获。Promise 链需要 catch,async 函数应在调用边界处理返回的 Promise。
浏览器的 error 与 unhandledrejection 事件可作为兜底观测入口,但不能替代业务层恢复策略。记录错误时应包含操作上下文、版本和必要的堆栈,同时避免泄露访问令牌或敏感表单数据。
区分用户可重试的失败与程序错误:前者给出可执行提示,后者保留诊断信息。不要为了“控制台干净”统一返回成功或空数组,否则会把真实故障伪装成正常业务结果。