应存字符串化错误数据,包括message、name、timestamp和context字段;先json.stringify再setitem,读取时json.parse;避免存敏感信息,生产环境需过滤stack。

可以将最后一次失败的报错信息存入 localStorage,但需注意:它只支持字符串,不能直接存 Error 对象或复杂结构。
存什么内容更实用
建议至少保存以下字段,便于后续排查:
-
错误消息(message):如
"Failed to fetch" -
错误类型(name):如
"TypeError" -
时间戳(timestamp):用
Date.now()记录发生时刻 -
简要上下文(context):比如请求 URL、操作名称(如
"login-submit")
怎么安全地存进去
捕获错误后,先序列化再写入:
try {
// 可能出错的操作
} catch (err) {
const errorData = {
message: err.message,
name: err.name,
timestamp: Date.now(),
context: 'user-login'
};
try {
localStorage.setItem('lastError', JSON.stringify(errorData));
} catch (e) {
// localStorage 满了或被禁用时静默忽略
}
}
怎么读出来并调试
开发时可在控制台快速查看:
const lastErr = localStorage.getItem('lastError');
console.log(lastErr ? JSON.parse(lastErr) : '无记录');
上线后也可在关键入口处自动上报(例如页面加载时读取并发送到监控服务),之后立即清除:
const errStr = localStorage.getItem('lastError');
if (errStr) {
reportToSentry(JSON.parse(errStr));
localStorage.removeItem('lastError');
}
注意事项
不要存敏感信息,比如用户密码、token、完整堆栈(stack 可能含路径或变量值)。生产环境建议过滤或截断 stack 字段。另外,localStorage 是同源共享的,多个标签页会共用同一份 lastError,如有需要可加前缀区分场景。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!










