无法在 javascript 中访问 catch 块



我正在尝试在javascript中实现try catch块,但我的问题是为什么当我的代码中抛出一些错误时,我没有被发送到catch块,例如

try {
var a = 10;
var b = 0;
var c = a / b;
}
catch (ex) {
console.log('error');
}

我有这样的代码,现在当我尝试运行此代码时,结果应该是一个错误,应该发送到 catch 块中,但我没有被发送到 catch 块中。

如果我使用

抛出新的错误();

在尝试捕获块中,然后我被发送到捕获块中。我的问题是,如果我必须手动将其发送到 catch 块,那么使用 try catch 块的目的是什么,我可以自己识别错误,并且可能会使用 return 语句停止执行我的代码。

我错过了什么吗,关于尝试捕获块有什么我缺少的,或者我不知道,请告诉我

在 JavaScript 中,允许除以零并产生Infinity,如果一个部分为负数,则产生-Infinity。这就是为什么你永远不会到达你的catch块。

> 10/0 将返回无穷大,它不会抛出异常。试试这个

try {                
adddlert("Error");
}
catch (ex) {             
console.log('error');
}

如前所述,Javascript 不会在除以 0 错误时抛出异常。

但是如果你想抛出错误,像下面这样的简单帮助程序函数应该会有所帮助。

function myDiv(a,b) {
var r = a / b;
if (Number.isFinite(r)) return r;
throw new Error('Divide Error');
}
try {
var a = 10;
var b = 0;
var c = myDiv(a, b);
console.log(c);
} catch (ex) {
console.log('error');
}

相关内容

  • 没有找到相关文章

最新更新