为什么';t Javascript句柄在try-catch中被零除的错误
我有下面的简单代码,它在try/catch中抛出一个错误,错误在catch中处理。这将按预期工作,并记录错误:为什么';t Javascript句柄在try-catch中被零除的错误,javascript,Javascript,我有下面的简单代码,它在try/catch中抛出一个错误,错误在catch中处理。这将按预期工作,并记录错误: try { throw new Error('Test Error'); } catch (err) { console.log('Caught Error:'); console.log(err); } 然后我尝试下一个示例,其中代码抛出错误,而不是我只是创建一个测试错误并抛出它,错误被抑制,但不会在catch中处理: try { let test
try {
throw new Error('Test Error');
} catch (err) {
console.log('Caught Error:');
console.log(err);
}
然后我尝试下一个示例,其中代码抛出错误,而不是我只是创建一个测试错误并抛出它,错误被抑制,但不会在catch中处理:
try {
let test = 1 / 0;
} catch (err) {
console.log('Caught Error:');
console.log(err);
}
在第二个示例中,没有记录任何内容。为什么会这样
注意。JavaScript没有这种异常,只是返回一个名为
无穷大的特殊值
您可以使用Number.isFinite
函数进行检查,并检测它是否被0分割
console.log(Number.isFinite(1/0));
console.log(Number.isFinite(1/1))代码>JavaScript没有这种异常,只是返回一个名为Infinity
的特殊值
您可以使用Number.isFinite
函数进行检查,并检测它是否被0分割
console.log(Number.isFinite(1/0));
console.log(Number.isFinite(1/1))代码>谢谢你。。。这是有道理的。谢谢你。。。这是有道理的。因为0/1定义得很好?您正在除以0,而不是除以0。一个是完全定义的,而另一个是不确定的。因为0/1定义得很好?您正在除以0,而不是除以0。一个是完全定义的,而另一个是不确定的。