当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
不知道还有异常信息输出还有那些,希望指教
