无法在 javascript 中到达 catch 块
Not able to reach catch block in javascript
我正在尝试在 javascript 中实现 try catch 块,但我的问题是为什么当我的代码中出现某些错误时我没有发送到 catch 块,例如
try {
var a = 10;
var b = 0;
var c = a / b;
}
catch (ex) {
console.log('error');
}
我有这样的代码,现在当我尝试 运行 这段代码时,结果应该是一个错误,应该被发送到 catch 块,但我没有被发送到 catch 块。
如果我使用
throw new Error();
在 try catch 块中,然后我被发送到 catch 块中。我的问题是如果我必须手动将它发送到 catch 块那么使用 try catch 块的目的是什么,我自己可以识别错误并且可能会通过使用 return 语句停止执行我的代码。
我是否遗漏了什么,关于 try catch 块我是否遗漏了什么或者我不知道,请告诉我
在 JavaScript 中,允许除以零并生成 Infinity
,如果有一部分为负数,则生成 -Infinity
。这就是为什么您永远无法到达 catch
街区。
10/0 会 return Infinity,它不会抛出异常。试试这个
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');
}
我正在尝试在 javascript 中实现 try catch 块,但我的问题是为什么当我的代码中出现某些错误时我没有发送到 catch 块,例如
try {
var a = 10;
var b = 0;
var c = a / b;
}
catch (ex) {
console.log('error');
}
我有这样的代码,现在当我尝试 运行 这段代码时,结果应该是一个错误,应该被发送到 catch 块,但我没有被发送到 catch 块。
如果我使用
throw new Error();
在 try catch 块中,然后我被发送到 catch 块中。我的问题是如果我必须手动将它发送到 catch 块那么使用 try catch 块的目的是什么,我自己可以识别错误并且可能会通过使用 return 语句停止执行我的代码。
我是否遗漏了什么,关于 try catch 块我是否遗漏了什么或者我不知道,请告诉我
在 JavaScript 中,允许除以零并生成 Infinity
,如果有一部分为负数,则生成 -Infinity
。这就是为什么您永远无法到达 catch
街区。
10/0 会 return Infinity,它不会抛出异常。试试这个
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');
}