javascript try catch vs if then else

标签 javascript try-catch

如果语句成功,我需要能够运行一堆代码。如果 javascript 有 try/catch/else,那么我会将所有代码放在 else 中并完成它。我不想使用 bool 值来模仿 try/catch/else 中的 else。我的理解是 try 可以处理错误但不能 IF 做同样的事情吗?如果是这样,我将不得不使用 IF,但我不希望我的程序在 QueryInterface 失败时崩溃。所以我的问题是,如果 QueryInterface 失败,那么 else 将在下面的 IF 中执行,对吗?如果是这样,那么我想使用 try/catch 的唯一原因是阻止错误条件。

现有方法:

try {
 channel = subject.QueryInterface(Ci.nsIHttpChannel);
} catch(err) {
 booSuccess = false;
 intErrorCount++
}
if (booSuccess == true) {
 ...bunch of stuff...
}

建议的方法:

if (channel = subject.QueryInterface(Ci.nsIHttpChannel)) {
 ...bunch of stuff...
} else {
 intErrorCount++
}

最佳答案

不,抛出异常(您用第一个代码段捕获)与返回错误代码(channel == 0,第二个代码段检查)有很大不同。他们不这样做。

为了避免该 bool 变量,您可能会做的是

try {
 channel = subject.QueryInterface(Ci.nsIHttpChannel);
 ...bunch of stuff...
} catch(err) {
 intErrorCount++
}

但是如果一堆东西发生异常,那也会增加错误计数。

关于javascript try catch vs if then else,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23555272/

相关文章:

javascript - ECMA脚本 :Harmony/ES6 to JavaScript compiler

c# - 验证文本框是否仅包含数字

java - 程序在 Thread.sleep() 期间和计时器卡住

javascript - 当使用 JavaScript 作为多台计算机的输入时,错误会蔓延到 JavaScript 中吗?

javascript - 为什么我不断收到错误 : Timeout of 2000ms exceeded from Mocha on async?

javascript - 在元素数组中查找重复的元素系列

javascript - 安卓 WebView : Very laggy button response

c++ - C++错误处理

c# - 在 .NET 中,try/catch 只是重新抛出 catch 有什么好处

javascript - try-catch 是为了防止还是处理错误? (在javascript中)