刚刚学习了Javascript中的异常。需要帮助才能更好地理解 函数multipliatorunitfailure(){} 函数原语乘法(a,b){ if(Math.random()
大家好!刚刚完成了关于表达式的雄辩javascript一章。给出了错误的函数原语Multiple,该原语一半时间返回参数a和b的有效乘法,另一半时间抛出一个类型为multipatorunitfailure的异常,一个自定义生成的异常。我被要求通过调用原语乘法,使可靠的倍数100%正确地乘以2个数字a和b,直到它不会向我抛出一个MultiplicatorRunitFailure错误。如果它抛出任何其他错误,我将放弃并抛出该错误。我填写了我的代码,但有时会在控制台中获取[object]。为什么?您可能看到对刚刚学习了Javascript中的异常。需要帮助才能更好地理解 函数multipliatorunitfailure(){} 函数原语乘法(a,b){ if(Math.random(),javascript,exception,Javascript,Exception,大家好!刚刚完成了关于表达式的雄辩javascript一章。给出了错误的函数原语Multiple,该原语一半时间返回参数a和b的有效乘法,另一半时间抛出一个类型为multipatorunitfailure的异常,一个自定义生成的异常。我被要求通过调用原语乘法,使可靠的倍数100%正确地乘以2个数字a和b,直到它不会向我抛出一个MultiplicatorRunitFailure错误。如果它抛出任何其他错误,我将放弃并抛出该错误。我填写了我的代码,但有时会在控制台中获取[object]。为什么?您可
primitiveMultiply
的第二次调用引发了异常,该异常不在try块中。尝试删除此调用,而不是在第一个调用周围放置一个循环,如:
function MultiplicatorUnitFailure() {}
function primitiveMultiply(a, b) {
if (Math.random() < 0.5)
return a * b;
else
throw new MultiplicatorUnitFailure();
}
function reliableMultiply(a, b) {
var x;
try {x = primitiveMultiply(a, b);}
catch(error){
if (error instanceof MultiplicatorUnitFailure)
x = primitiveMultiply(a,b);
else
throw error;
}
return x;
}
您可能看到对
primitiveMultiply
的第二次调用引发了异常,该异常不在try块中。尝试删除此调用,而不是在第一个调用周围放置一个循环,如:
function MultiplicatorUnitFailure() {}
function primitiveMultiply(a, b) {
if (Math.random() < 0.5)
return a * b;
else
throw new MultiplicatorUnitFailure();
}
function reliableMultiply(a, b) {
var x;
try {x = primitiveMultiply(a, b);}
catch(error){
if (error instanceof MultiplicatorUnitFailure)
x = primitiveMultiply(a,b);
else
throw error;
}
return x;
}