当JavaScript程序在运行中发生了诸如数组索引越界、类型不匹配或者语法错误时,JavaScript解释器就会引发例外处理。ECMAScript定义了六种类型的错误,除此之外,我们可以使用Error对象和throw语句来创建并引发自定义的例外处理信息。
try {
document.writeln("开始执行try块语句 ---> ")
document.writeln("还没有发生例外 ---> ")
alert(eval(prompt("输入一个值:","")))
} catch(err) {
document.writeln("捕捉到例外,开始执行catch块语句 --->");
document.writeln("错误名称: " + err.name+" ---> ");
document.writeln("错误信息: " + err.message+" ---> ");
} finally {
document.writeln("开始执行finally块语句")
}
Error.name的取值一共有六种,如下:
EvalError:eval()的使用与定义不一致
RangeError:数值越界
ReferenceError:非法或不能识别的引用数值
SyntaxError:发生语法解析错误
TypeError:操作数类型错误
URIError:URI处理函数使用不当
Error type: ReferenceError
Error message: undefinedVariable is not defined
Executing inner finally block
Exception caught, beginning outer catch block
Error type: ReferenceError
Error message: undefinedVariable is not defined
Executing outer finally block
定制例外信息
上述的六种Error类型基本上覆盖了脚本程序运行时所可能发生的错误。除了这些类型以外,我们还可以使用Error构造器来自定义例外类型,其语法如下:
myError = new Error(msg)
其中msg参数表示所定义的新例外的message属性值。同时,我们还可以创建新的对象类型以作为Error的子类型:
function MyError(msg) {
this.name = "MyError"
this.message = msg
}
MyError.prototype = new Error;
然后,我们就可以创建自定义错误子类的实例:
myError = new MyError("My error message")
err.name
err.message
err.description
不知道还有异常信息输出还有那些,希望指教