js编程 调试错误常用方法...
时间:2010-08-08 来源:dodo_yin
最近一段时间写程序遇到了不少页面设计的东西,自然少不了js。
在做的过程中使用脚本是总是遇到错误,开始时一头雾水,不知道如何从jsp页面中取定位js的错误位置,因为ie给定位的错误位置有时候很模糊,但是目前有没有针对js语法调试的编辑器。自己摸索了几天,有两个方法比较实用而且有效:
1、alert()方法;
alert方法添加到脚本中合适的位置(你怀疑有错误的地方),页面执行时会弹出一个对话框,看看alert()方法是否被执行到;这样在页面中放几个 alert你就可以很快的检测到错误发生的位置,准确排除!注意:错误排除后记得把alert去掉啊,要不然页面一顿弹对话框也很要命的。。。
2、利用ie的右键查看源文件定位错误位置
执行页面如果报错了,左下角会出现一个黄色的感叹号,双击它,弹出,看一下错误的行号,然后在页面上右键->查看源文件,定位到刚才的行号,在jsp设计页面中找到合适的位置看看是什么原因报的错误,检查、干掉错误!
附:一些JS调试技巧,都是从论坛 里面找的哦,要感谢就感谢论坛 里的JS高手吧,有些确实很实用
如何在vs.net里调试脚本
1.首先应该把ie的 “ 禁止脚本调试选项 ” 去掉
2.如果在vs.net里面,就设置一个html文件为启动页,然后在文件上面设置断点,这样应该是好使的。记住:设定html文件为启动页
如果你的程序是asp,或者aspx,那还有这样的方法:
1.
a)在你想要停止的地方加上alert(),
b)然后运行的网页,
c)使用attach to process(vs.net 和vs interdev 都有这个菜单项)连接上你的进程,
d)到alert()(在前面设置好)语句后,不要点"确定",
e)回到debugger(vs.net 或者 interdev)暂停进程,
f)点击警告窗口的"确定",
g)这时脚本停留在alert(语句的下一条)
2.使用浏览器的"调试"菜单下面的"到下一条语句停止"的功能,也可以很好地调试脚本
JavaScript 脚本调试经典技巧
在调试 Javascript 脚本的时候,如果有错误, IE 的状态栏里会有个问号 [ 点击此问号 ] ,或者弹出错误框,为了尽快找到错误,下面是常用的调试方法:
1 ,如果出现对象为 null 或找不不到对象,那就是 id,name 或 DOM 写法不对,请检查错误所在的行;
2 ,如果错误定位到一个函数的调用上,说明函数体有问题,到函数体里找原因。
3 ,为了加快速度,可以先用 /* */ 注释屏蔽掉一部分代码,逐步检查;
4 ,可以增加 alert(xxx) 来看看变量是否得到了期望的值;
5 , IE 的错误报告往往不准确,比如行 18 错的话,有时候是 19 行有问题;
6 ,为了确保代码能够正确运行,在实在不能确定能否出现错误的时候,用 try{}catch{} 语句在做 初学的时候往往不注意大小写例如 innerHTML 属性,容易写成 innerHtml ,一般如果出现对象不支持此种属性或方法的提示的时候,就是大小写造成的,还有一种可能,就是,你正在试图使用一个根本没有的属性或方法。
1. 问号 [ 点击此问号 ] ,或者弹出错误框,为了尽快找到错误 点问号,看第 n+1 行是否有错误。没有就往前 重要的是经验,而且是自己写的代码,才能对症下药
2. 程序代码要规范,括号要对应,尽量使用 tab 键
出现缺少;号的错误,其实不是少;号,而是你的表达式里没有写合法的运算符之类:比如: str="sdfsdsdf"+"dfsdfsd 之类的 没有语法错误的情况下
我常常用的 alert();return; 逐步确定错误范围;在调试 JSP 程序的时候是 out.println("Run here right!");out.close()
我是直接写个 ASSERT 的函数 , 在可以的地方 throw(msg) 然后用调试器看的 .
写错 ID 就不要提了 , 最经常是某个函数返回 NULL, 在我认为不应该返回 NULL 的地方 , 我就这样写
var obj=SomeFunction();
ASSERT(null!=obj,"var obj=SomeFunction(); 返回 null");
function ASSERT(mustbetrue,msg)
{
if(mustbetrue=false)throw(new Error(-1,"ASSERT: "+msg));
}
function ASSERT(mustbetrue,msg)
{
if(mustbetrue==false)throw(new Error(-1,"ASSERT: "+msg));
}
VS.Net 是最好的脚本调试器了。
什么都监视得了。。
use Visual Interdev to debug
关 try catch 的一点点补充,来自部门培训例子
<script>
try{
x=y; // Cause an error.
}
catch(e){ // Create local variable e.
alert(e); // Prints "[object Error]".
alert(e.number & 0xFFFF); // Prints 5009.
alert(e.description); // Prints "'y' is undefined".
}
</script>
http://groups. google .com/groups?q=debugging+javascript&ie=UTF8&oe=UTF8&hl=en
用 vs.net 调试 javascript
1, 首先,要让你的 ie 允许调试脚本,具体步骤如下 :
打开 ie-> 工具菜单 ->inter 选项 -> 高级选项卡 -> 去掉 “ 禁止脚本调试 " 选项
2, 打开 vs.net, 创建一个新的 asp.net 项目 ( 或打开一个 )
3, 运行你要调试的页面
4, 当你的页面呈现在 ie 里的时候,重新回到 vs.net
5, 在脚本中设置断点 :
调试菜单 -> 窗口 -> 调试文档
在 ” 运行文档 “ 中选择要调试的页面 ( 这是一个类似于解决方案管理器的浮动工具栏 )
6, 然后,你可以通过操作网页来进入脚本,当脚本运行到断点时,就可以进行调试了 .
如果你想在页面开始装载时就进入调试状态,可以按 F10( 逐过程 ) 进行调试
来自 MSDN :
ms-help://MS.VSCC.2003/MS.MSDNQTR.2003FEB.2052/vsdebug/html/vxtskdebuggingclient-sidescript.htm
1 、首先在 IE 中启用脚本调试,选择 工具- Internet 选项-浏览-清除 禁用脚本调试的选择
2 、开始以 debug 执行 ASP.NET 程序
3 、在 调试-窗口-运行文档,让 VS 显示运行文档
4 、单步运行程序过程执行 ASPX 文件会在运行文档的窗口中显示,双击打开需要调试的文件,在需要调试的脚本位置上设置断点,调试即可