居然无效?查找并消除运行时错误

更新:2007 年 11 月

在本课中,您将学习如何调试程序和修复运行时错误。

正如您前面所学,当程序尝试的操作不可能完成时,会出现运行时错误。当出现运行时错误时,程序停止并显示错误信息。这时您需要调试并修复错误,然后程序才能继续运行。

查找并修复运行时错误

大多数运行时错误的出现都是由于代码错误,例如,在使用变量前忘记为其赋值。当运行程序时,如果发现了错误,程序将停止,并且“代码编辑器”窗口中会显示“异常助手”对话框。发生这种情况时,程序处于中断模式(即需要进行调试的模式)。

“异常助手”对话框包含对错误的说明,以及指出错误原因的故障排除提示。您可以单击故障排除提示来显示帮助主题,以了解更多信息。

需要修复错误后程序才能继续,为了修复错误,您需要检查代码以找出错误原因。例如,如果怀疑错误起因于某个变量含有不正确的值,那么,当仍处于中断模式时,可以使用 IntelliSense 查看该变量的值。当您在代码编辑器中将鼠标停留在变量上时,工具提示会显示该变量的值。如果该值不是您期望的值,则在前面的代码中查看设置该值的位置,然后修复相应代码并继续。

试一试!

检查变量的值

  1. 在“文件”菜单上,选择“新建项目”。

  2. 在“新建项目”对话框的“模板”窗格中,单击“Windows 应用程序”。

  3. 在“名称”框中键入 RunTimeErrors,再单击“确定”。

    一个新的 Windows 窗体项目随即打开。

  4. 双击该窗体以打开代码编辑器。

  5. 在 Form_Load 事件处理程序中,添加下面的代码。

    Dim miles As Integer = 0
    Dim hours As Integer = 0
    Dim speed As Integer = 0
    
    miles = 55
    speed = miles / hours
    MsgBox(CStr(speed) & " miles per hour")
    
  6. 按 F5 运行程序。将出现“异常助手”对话框,其中显示有消息“未处理 OverflowException”。

    从对话框引至代码文件的虚线显示错误是由哪一行代码产生的。

    注意,“异常助手”中的第一个故障排除提示建议应确保不会被零除。

  7. 将鼠标移到变量 miles 上并停留几秒。应看到一个显示“miles 55”的工具提示。

  8. 现在将鼠标移到变量 hours 上,工具提示应显示“hours 0”。

    由于不能被零除,而 hours 的值为零,这样您就找到了错误的原因,即没有更新 hours 的值。

  9. 在 miles = 55 行上方添加下面这行代码。

    hours = 2
    
  10. 单击代码左边距中的黄色箭头,将代码向上拖到 hours = 2 行上。

    这使程序可以从该行继续运行,而不是从包含错误的行继续。若要执行刚添加的新代码行就需要这样做,以便识别错误修复。

  11. 按 F5 继续程序。此时出现一个对话框,其中显示“8 miles per hour”。

后续步骤

在本课中,您学习了如何找到并修复运行时错误。在下一课中,您将了解第三种类型的编程错误:逻辑错误。您可以探索详细了解:假定方案...在即时窗口中测试代码中更高级的调试方法,然后进入逻辑错误课程。

下一课:嘿!不应那样做!找出逻辑错误

请参见

任务

查找和消除编译器错误

了解您的 Bug:三种编程错误

查找错误:Visual Basic 调试介绍