运算符instanceof可以同标准错误一起使用。JavaScript定义了以下标准的JavaScript错误类型: EvalError:表明全局的eval函数使用错误。 RangeError:说明一个数值超过了所允许的值的范围。 ReferenceError:发现了一个非法的引用。 SyntaxError:发生了一个句法分析错误。 TypeError:一个操作数的实际类型与所预期的类型不同。 URIError:其中一个全局URI函数(编码URI或解码URI)使用错误。 列表G中的代码在一个catch语句中采用了TypeError类型。由于在引用字段名(document)的行中多了一个d,结果发生了一个打字错误(ddocument)。 列表G 以下为引用的内容: <html><head> <title>JS Test</title> <script type="text/javascript"> function MissingValueException (errMsg) { this.message = errMsg; this.name="MissingValueException"; } function doIt() { try { if (ddocument.forms[0].fullName.value == '') { noNameException = new MissingValueException("First name is missing."); throw noNameException; } } catch(e) { if (e instanceofTypeError) { document.write("Reference error while accessing First Name field.<br><br>"); document.write("Please contact the administrator.<br><br>"); document.write(e.message); } else { document.write("An unexpected error has occurred.<br><br>"); document.write("Please contact the administrator.<br><br>"); document.write(e.message); } } finally { document.forms[0].submit(); } return 0; } </script></head> <body><form id="frmTest"> Name: <input id="fullName" name="fullName" type="text"><br> Address: <input id="contactNumber" name="contactNumber" type="text"><br> <input type="button" value="Submit" onclick="doIt();"> </form></body></html> | |