一个try/catch块不能避免错误,但是它能够很得体地处理错误,这样用户就不会面对晦涩的浏览器出错信息。观察列表D。 列表D 以下为引用的内容: <html> <head> <title>JS Test</title> <script type="text/javascript"> function doIt() { try { if (document.forms[0].firstName.value == '') { // do something } } catch(e) { 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> | 它提示了以下信息,但是finally块保证了窗体的提交——不管有什么错误发生。 以下为引用的内容: An unexpected error has occurred. Please contact the administrator. 'document.forms.0.firstName.value' is null or not an object | 单个catch块可以处理所有问题,但是多个catch语句可以被用来处理特定的错误。这个问题在下个部分会涉及到。 用try/catch语句可以很容易地处理不可预见的错误。在某些情况下,可能你想以不同的方式处理错误,JavaScript提供了throw语句。它的句法是很基本的——throw后面紧跟要发生的异常。这就使得你能够定义和引发自定义的异常。列表E中的代码创建了一个缺失值的异常,并且它是生成的。 列表E |