错误处理
错误处理
-
不要忽略抛异常
bad : ❌ try { functionThatMightThrow(); } catch (error) { console.log(error); } good ✅ try { functionThatMightThrow(); } catch (error) { // 这一种选择,比起 console.log 更直观 console.error(error); // 也可以在界面上提醒用户 notifyUserOfError(error); // 也可以把异常传回服务器 reportErrorToService(error); // 其他的自定义方法 } -
不要忘了在 Promise 抛异常
bad : ❌ getdata() .then((data) => { functionThatMightThrow(data); }) .catch((error) => { console.log(error); }); good ✅ getdata() .then((data) => { functionThatMightThrow(data); }) .catch((error) => { // 这一种选择,比起 console.log 更直观 console.error(error); // 也可以在界面上提醒用户 notifyUserOfError(error); // 也可以把异常传回服务器 reportErrorToService(error); // 其他的自定义方法 }); -
全局错误捕获
window.onerror = function(message, source, lineno, colno, error) { ... }
函数参数:message:错误信息(字符串)。可用于 HTMLonerror=""处理程序中的event。source:发生错误的脚本 URL(字符串)lineno:发生错误的行号(数字)colno:发生错误的列号(数字)error:Error 对象(对象)
若该函数返回
true,则阻止执行默认事件处理函数 -
JS 常见错误
建议先过一遍,参考 developer.mozilla.org/zh-CN/docs/…
**