能否通过try catch让JavaScript引擎遇到错误后继续执行剩下的代码?


当错误发生时,当事情出问题时,JavaScript 引擎通常会停止,并生成一个错误消息。
try 语句允许我们定义在执行时进行错误测试的代码块。
catch 语句允许我们定义当 try 代码块发生错误时,所执行的代码块。
怎样合理的使用try和catch让JavaScript引擎遇到错误后继续执行剩下的代码呢?

try-catch JavaScript

litp317 10 years, 2 months ago

什么时候使用 try/catch

当你想要对产生的错误进行处理时。

一般针对可预见性的异常,如在调用 JSON.parse() 时,可以进行异常处理,例如:


 var obj;
try {
  //data有可能不是合法的JSON字符串,便会产生异常
  obj = JSON.parse(data);
} catch (e) {
  obj = {};
}

对那些致命性的异常,可能会影响到接下来的业务逻辑,就没有必要在往下继续执行了,可以用 try/catch 处理一下(或不做处理),记录一些日志什么的,然后抛出该异常。


 try {
  doSomething(); //可能会产生致命的异常
} catch (e) {
  console.log(e);
  throw new Errow('自定义的异常');
}

总之,处理好异常并不容易,需要平常多处理一些,体会其中的差异,我个人感觉我这方面做的也不是特别好,分享一些链接看看。

Links

Enterprise JavaScript Error Handling
JavaScript error handling anti-pattern
Error handling in JavaScript: Rarely done, often needed

yinyin answered 10 years, 2 months ago

Your Answer