![JavaScript从入门到精通(第3版)](https://wfqqreader-1252317822.image.myqcloud.com/cover/93/27738093/b_27738093.jpg)
上QQ阅读APP看书,第一时间看更新
8.3 JavaScript语言调试技巧
异常是程序开发过程中无法避免的,因此调试对任何程序设计者来说都是一个关键性技能。本节将介绍如何解析和跟踪JavaScript程序中的异常。
8.3.1 使用alert()语句进行调试
当无法定位程序发生的错误及引发的异常时,可以采用代码跟踪方式查找错误。这时可以将alert()语句放在程序的不同位置,以显示程序中变量、函数返回值等的变化。
语法格式:
<script language="javascript"> alert(); </script>
参数说明:
alert():弹出对话框方法。
例如:
<script language="javascript"> function alertTest(){ alert("开始"); var a=1; var b=2; alert("执行"); alert(a+b); alert("结束"); } </script>
这种调试方式的缺点在于:在代码中嵌入了太多alert()语句,当调试结束时,删除这些alert()语句将是一个庞大的工程。
8.3.2 使用write()语句进行调试
有时,程序员希望将所有的调试信息以列表的方式放置在页面中,这时可以使用write()方法进行调试。
语法格式:
<script language="javascript"> document.write(); </script>
参数说明:
write():将信息写入页面中的方法。
例如:
![](https://epubservercos.yuewen.com/23D367/15936052205027606/epubprivate/OEBPS/Images/Figure-P196_71718.jpg?sign=1734392215-MewmcMX329BZatoIp9D0KeCANB9LkNk3-0-9ca1529587b9cd138d1bc02d497541e0)
8.3.3 使用抛出自定义异常消息进行调试
抛出自定义异常是调试JavaScript代码的最佳途径,其使用了try...catch语句及throw机制。
语法格式:
![](https://epubservercos.yuewen.com/23D367/15936052205027606/epubprivate/OEBPS/Images/Figure-P197_71719.jpg?sign=1734392215-fxLG2We3G6xgnAP76aCHHbQ9n88znSAT-0-18c395848759325d1856e98e63c704ae)
参数说明:
throw:抛出自定义异常关键字。
alert():弹出对话框方法。
【例8.6】 使用自定义异常消息进行调试。(实例位置:资源包\TM\sl\8\06)
本实例主要实现使用自定义异常消息进行调试。在代码中定义了一个函数,首先判断函数参数的个数,如果小于2,将抛出自定义异常;然后判断函数第二个参数是否为0,如果为0,将弹出异常提示信息对话框。运行结果如图8.12和图8.13所示。
![](https://epubservercos.yuewen.com/23D367/15936052205027606/epubprivate/OEBPS/Images/Figure-P197_25511.jpg?sign=1734392215-Q2ZaHzTiNc9in3rl9odid2RzxQ6QUFgo-0-00dc3ffcccb5b0774378b4cba0f1b4c3)
图8.12 弹出异常提示对话框(1)
![](https://epubservercos.yuewen.com/23D367/15936052205027606/epubprivate/OEBPS/Images/Figure-P197_25512.jpg?sign=1734392215-PWxHw8KvEoCR3yzZzHvmd0kjTfaDLgNx-0-4d4887b812992470bb248ac70c8c9ea3)
图8.13 弹出异常提示对话框(2)
代码如下:
![](https://epubservercos.yuewen.com/23D367/15936052205027606/epubprivate/OEBPS/Images/Figure-P197_71720.jpg?sign=1734392215-ZSbgOY5EmDIc5SDu9TmuDymLuQfe7dqy-0-9b4bcc5c4f5112f9ac5984cadcbe694a)