38-引发自定义错误
3.11.2 引发自定义错误
您还可使用throw语句引发自定义错误。下面的代码在一个函数中添加throw语句来引发错误,从而将错误扼杀在摇篮中。函数sqrRoot()接受一个参数——x;它检查参数x是否是正数,如果是就返回一个字符串,其中包含x的平方根。如果x不是正数,就引发相应的错误,而catch块将返回错误消息:
function sqrRoot(x) {
try {
if(x=="") throw {message:"Can't Square Root Nothing"};
if(isNaN(x)) throw {message:"Can't Square Root Strings"};
if(x<0) throw {message:"Sorry No Imagination"};
return "sqrt("+x+") = " + Math.sqrt(x);
} catch(err){
return err.message;
}
}
function writeIt(){
print(sqrRoot("four"));
print(sqrRoot(""));
print(sqrRoot("4"));
print(sqrRoot("-4"));
}
writeIt();
下面的控制台输出指出了根据提供给函数sqrRoot()的输入可能引发的各种错误:
Can't Square Root Strings
Can't Square Root Nothing
sqrt(4) = 2
Sorry No Imagination