Kiz*_*mar 1 javascript error-handling console try-catch syntax-error
有人可以向我解释为什么try/catch不能处理"Uncaught SyntaxError"吗?是否可以优雅地处理这种类型的错误,以便JS的其余部分运行?
例如:
try { response.write(;); }
catch(e) { console.log(e); }
Run Code Online (Sandbox Code Playgroud)
此代码抛出"Uncaught SyntaxError:Unexpected token;" [Chrome]浏览器错误,而不是跳转到catch并记录错误对象.你在Firefox中也得到了类似的结果; 抛出错误而不是使用catch处理它.
好吧,由于这是一个语法异常,这意味着 javascript 解析器未能解析您的代码。由于浏览器未能解析您的代码,因此无法执行它。它甚至不知道您的 try/catch 块。try/catch 块只能捕获由于在块的上下文中执行代码而引发的异常。
语法错误不是运行时异常.为了使您的程序能够抛出并捕获异常,它需要能够运行.为了运行,它需要是javascript.上面的例子不是有效的javascript.解释器在看到第一个无效行时放弃并打印错误,它甚至从未到达"catch"行.
归档时间: |
|
查看次数: |
3526 次 |
最近记录: |