我们在开发程序的时候,难免会遇到错误和异常。 如何快速找到错误,分析错误原因并找到解决问题的方法是很多初级程序员都困扰的问题,而这正是经验可贵的地方。 下面我简单介绍一下系统中的调试以及一些高级调试和常见错误。
入门
假设您是一名使用.Net平台的程序员,并使用它作为开发工具。
断点:最简单的,设置一个断点,程序到了那句话就自动中断,进入调试状态。 要设置断点,点击你认为有问题的代码行的左侧,会出现一个红点,这就是断点。
开始调试:按F5,或菜单栏---调试---开始调试,或工具栏
图标
快速监控:快速查看变量或表达式的值,还可以自定义表达式进行计算
单步执行
共有三种,一种是一次执行一行(F10); 一种是一次执行一行,但遇到函数调用时,会跳转到被调用的函数(F11); 一是直接执行当前功能命令的其余部分,返回上一级功能(Shift+F11)。
还有一剂后悔药,设置为下一句(Set Next),即执行下一句(右键设置或快捷键:Ctrl+Shift+F10),但是调试与数据相关的时候要小心、 set 一句可能会报异常。比如调试添加行时,已经存在的行无法再次添加。
监视器
调试器可能会自动列出一些相关变量的值,但你可能还关心其他变量的值,并且可以添加对这些变量的监控。 您还可以监视表达式的值,例如 a+b。 不过,最好不要用这个表达式修改变量的值。 比如监控a++,会导致监控过程中a的值被修改,影响程序的运行结果。
调试技巧
使用快捷键将大大提高我们的调试效率。 常用调试快捷键:
F5开始调试
F10 执行下一行代码,但不执行任何函数调用。
F11执行函数调用后,会逐条语句执行代码。
Shift + F11 在当前执行点执行函数的其余行。
Shift+F5 停止正在运行的程序中的当前应用程序。 可用于“中断”模式和“运行”模式。
拖动断点(感谢提醒)
在调试时,我们可以拖动断点,使程序运行到我们想要运行的地方。 通常用来验证这段代码对程序的运行结果是否有影响。因为我们拖动代码,所以过滤后的代码不会被执行。 与原来的比较,我们可以看到删除这段代码的影响。
条件中断
如果你写了一个for循环,并且循环次数比较多,如下面的代码,现在我们知道i=50时会出现异常,那么我们就不能按F5 50次来调试这段代码,否则效率...
调试()
for(inti=0;i"),会有智能提示,名称不言自明。
例如,如果我们现在想知道i的值,我们可以输入名称>Debug.Print i(或者简单地使用>?i),如下所示
还有一个更强大的用法,计算方法的返回值(如果有的话)
如果有一个函数可以实现这个功能
整数(整数a)
如果(a==1)
1;
别的
0;
我们可以使用命令>? class.(args) 来调用该方法,如下所示
其中p是当前类的实例(因为是类的方法,请注意?和表达式之间必须有空格)
对于一些实时性能较高的程序(如)使用Debug.Write()将错误写入日志文件,.Net可以将Debug信息写入您指定的文件中。 请记住,写入和写入的信息不一定是错误信息,也可以是有关程序运行的一些重要信息。 当调试过程中发现某个模块有问题,但无法确定具体位置时,可以使用此方法。 如果错误仅发生一天,那么您更应该使用此方法。
例子
涉及 WS() 的调试
在基于WS的实际开发中,我们经常使用WS来进行数据传输。 我们在前台收集数据,并通过WS将数据传递到后端。 后端做相应的业务逻辑处理后,会持久化到数据库。 而经常我们会在WS中编写一些相关的代码,比如认证、日志、提示信息等,如何调试这些代码。
涉及调试
很多程序员对调试感到困惑,因为没有好的调试工具。 有些人喜欢用它来调试。 这确实是一个不错的选择。 它提供了大量的信息,是一个很好的调试工具。 下面我将介绍如何使用调试。 调试 JS 与调试 C# 类似。 他们都设置了断点。 不同的是我们在查看元素值的时候需要注意。
涉及 Ajax 的调试
如今ajax已经非常流行,但随之而来的是调试的难度。 大多数初级程序员不知道如何有效地从前台调试到后台代码,导致很多ajax应用程序不完美。
下面通过一个简单的例子来介绍如何使用调试。 一个例子是使用 Ajax 来验证用户登录。 如果验证通过,则提示“登录成功”,否则提示“登录失败”。
下面是我们用来实现ajax的主要代码,在后台文件中故意出现错误。
正确的用户名和密码是admin和1
调试方法如下。 在后台入口处设置断点,然后在前端js中调用的后台方法处设置断点,然后按F5开始调试。 当我们输入用户名和密码,点击登录后,我们会发现前端断点被触发了。
按F5继续调试。 有时会跳转到源代码。 忽略它并继续 F5。 你会发现后台执行到了断点,如下图。
后台代码的调试非常简单。 (PS:有时可以不前台设置断点,直接进入后台调试。如果不行,可以在前端html文件或aspx文件中认为可能有错误的地方设置断点,一步步调试)
调试过程中常见的一些错误(会逐步更新):
1.当我们调试某行代码时,突然莫名其妙的弹出了一些东西。 事实上,刚刚执行的那行出现了异常。 我们可以使用try...catch来捕获异常,看看异常的原因是什么,然后进行相应的处理。
2. 在ADO.NET中,我们将使用ds.Merge()方法来合并内存表。 如果出现异常,一般有以下三种情况:
A. 其中一张表中有两行相同的数据,包括主键。
B.这两个表的结构不一致
C、两个表中某个字段的类型不匹配。 例如,字段age在A表中,但在B表中。
如果你收集了一些常见的错误,希望你能分享一下。