JavaScript 异常处理 日常写 JavaScript 业务代码时总会遇到接口报错、类型转换失败、空对象取值、异步请求崩溃等各种异常。如果放任错误裸奔轻则控制台铺满红色报错重则页面白屏、功能直接卡死甚至连锁导致整个应用瘫痪。JS 提供了一套完整的异常捕获与处理机制try/catch/finally、主动抛出throw、异步专属捕获方案、全局兜底监听合理使用这套体系能让代码容错性大幅提升。throw 抛异常throw抛出异常信息程序也会终止throw 后面跟的是错误信息Error 对象配合 throw 使用 能够设置更详细的错误信息可以抛字符串、数字但推荐标准写法throw new Error(提示信息)function counter(x, y) { if (!x || !y) { throw new Error(参数不能为空) } return x y } counter()try/catch捕获异常try / catch / finally是 JavaScript 中用于捕获和处理错误的语法。try试一试把可能会出错、可能抛出异常的代码放在try代码块里执行。catch捕获如果try代码中出现错误后会执行catch 代码段并捕获到错误信息throw手动抛错可以主动触发自定义错误推荐写法throw new Error(错误提示信息)一旦执行throw代码立刻跳转到catch。finally最后不管是否有错误 都会执行throw try/catchtry/catch是捕获异常throw是生成并抛出异常两者必须配合使用才能实现 “自定义错误 优雅处理” 的完整异常流程p123/p script function fn() { try { //试试 // 可能发送错误的代码 要写到 try const p document.querySelector(.p) p.style.color red } catch (err) { //err 是自定义的形参 // 捕获 // 拦截错误提示浏览器提供的错误信息但是不中断程序的执行 console.log(err.message) //message 信息固定属性 // 可添加 throw 中断程序的执行 throw new Error(选择器错误) // 或者加return 中断程序 } finally { // (最后结果) // 不管程序对不对 一定会执行的代码 alert(弹出对话框) } } fn() /scriptdebuggerdebugger是 JS 内置调试关键字相当于手动打断点。代码执行到debugger;时如果浏览器 / Node 开启开发者工具会自动暂停代码进入调试面板。let a 10; debugger; // 代码停在这里 console.log(a);throw 可以和 try/catch 搭配使用