try catch (通常是为了判断一段代码是否存在异常) try { let a = 1; let c = a + c; } catch (err) { // 捕获处理 console.log(err); // ReferenceError: c is not defined } 缺点:在异常代码上进行包裹,会让页面代码显得臃肿,不适用于整个项目的异常捕获 window.onerror (全局监听异常捕获) <script> window.onerror = function(errorMessage, scriptURI, lineNo, columnNo, error) { console.log('errorMessage: ' + errorMessage); // 异常信息 console.log('scriptURI: ' + scriptURI); // 异常文件路径 console.log('lineNo: ' + lineNo); // 异常行号 console.log('columnNo: ' + columnNo); // 异常列号 console.log('error: ' + error); // 异常堆栈信息 }; console.log(a); </script> 缺点:跨域以后window.onerror是无法捕获异常信息的,所以script属性配置 crossorigin="anonymous" 并且服务器添加Access-Control-Allow-Origin。