3 回答
TA贡献89条经验 获得超53个赞
/*
try{}这段语句是抛出异常;catch(errMsg){}是捕获异常。
如果,if语句中条件为真(即,变量ans为非数字或是小于0的数字时)时,就会执行throw new Error("Not a valid number");抛出一个异常。此时if后面的语句alert("The square root of " + ans + " is " + Math.sqrt(ans));就不会被执行。接着执行catch (errMsg) {alert(errMsg.message)}捕获到异常并弹出异常为:Not a valid number;
如果,if语句中条件为假(即,变量ans为大于或等于0的数字)时,就不会抛出异常,继而执行alert("The square root of " + ans + " is " + Math.sqrt(ans));,catch (errMsg) {alert(errMsg.message)}也不会被执行!
综上,else在这里就没有必要了。
*/
try {
if (!ans || isNaN(ans) || ans<0) {
throw new Error("Not a valid number");
}
alert("The square root of " + ans + " is " + Math.sqrt(ans));
}
catch (errMsg) {
alert(errMsg.message);
}
}
TA贡献361条经验 获得超191个赞
没有else就是单纯判断,true就执行语句1,然后无论true还是false都执行语句2
if(){执行语句1};
执行语句2;
如果有else就判断,true就执行语句1,false就执行语句2
if(){执行语句1};
else{执行语句2};
添加回答
举报