您好我的自定义错误消息“未定义”。为什么?我只想要错误信息。任何人都可以帮忙。
function divide() {
let num = 2;
let den = 0;
try{
if (den == 0){
throw new Error("division invalid");
}
return Number(num/den);
} catch(e){
console.log(e.message);
}
}
console.log(divide());
答案 0 :(得分:2)
没有显式返回的函数,隐式返回undefined
。您抛出错误,然后在catch
块中没有返回任何内容。由于您没有返回值,因此会发送undefined
。
function divide() {
let num = 2;
let den = 0;
try {
if (den == 0) {
throw new Error("division invalid");
}
return Number(num/den);
} catch(e){
console.log(e.message);
return 'Can\'t divide by 0!';
}
}
console.log(divide());
请注意,在此代码段中,我将在catch
中返回一个字符串。永远不会调用行return Number(num/den);
,因为存在错误。
答案 1 :(得分:1)
您可以将其返回到调用方法,而不是在函数中记录错误。
{{1}}
答案 2 :(得分:0)
Console.log()函数返回undefined。所以@Krypton建议做什么,尽管这仍然会导致未定义的仍然出现。但是嘿,至少它不那么明确,不是吗?
答案 3 :(得分:0)
您的代码工作绝对正确。我在我的控制台上测试了这个。 最可能的问题是您的控制台设置,目前控制台必须设置为仅显示错误。因此,将Chrome控制台输出更改为 详细 或 全部 。我附上了如何根据您的期望更改代码的设置和输出的快照。 Solution to your problem Click here
为了完整性:在当前版本的chrome中,设置不再位于底部,但可以在单击"过滤器"控制台选项卡顶部的图标(左起第二个图标)
您可以click here作进一步参考。
我希望这能解决你的问题。谢谢:))