VB的灵魂—错误调试

来源:互联网 发布:remark软件下载 编辑:程序博客网 时间:2024/05/05 15:46

  这是在CSDN上写的第一篇文章,心情有点小激动和小紧张,感觉一定要写特别重要的东西,仔细想了想,到底什么才是特别重要的呢??思来想去,只有错误是不断发生,同时我们也是不断在改正,错误调试贯穿学习VB的整个过程中,也许碰到错误后我们会改,但是不一定能说出它到底是什么错误了。所以,在这里我对VB做一个全局的错误总结。可能总结的不太好,希望大神们多提建议。接下来分三个部分讲如何调试

      一、错误的种类 

     首先将错误的种类分为三种:

     1、语法错误

     语法错误包括: 拼写错误、缺少操作对象、不符合语法规则等错误都属于语法错误。

     

     这类都属于比较简单的,一张图估计能懂所有。

     2、运行错误

      运行错误是指在运行程序的时候发生的错误。这些错误在编写的过程中,因为它们符合语法规则,所以不会被识别出来,也不会在编译的时候被发现。它们往往是由于进行了某种错误的操作造成的。

     3、逻辑错误

     逻辑错误指的是程序可以执行,但就是得不到用户所希望的结果。这并不是程序语句的错误,而是由于程序设计时本身存在的逻辑缺陷而导致的。如定义了错误的变量类型,或程序中出现了不正确的循环次数或死循环等等。
     大多数逻辑错误不容易发觉是在哪一条语句发生的,而且错误产生的原因与产生错误结果的语句之间可能隔有很多语句。因此,对于逻辑错误一般要使用单步执行和监视的方法来查找错误的根源。

    二、错误处理

     1  错误捕获 

      自己理解的是vb系统告诉你那里错了。

     2  激活错误捕获功能 

      说到这里必须说说VB中特别重要的ON Error语句了。它也包括三类,这里说最常用的两种。

       On Error Goto 行号

       此语句的功能是激活错误捕获,并将错误处理程序指定为从“行号”位置开始的程序段。

       这是一个典型的错误处理过程。首先,我们可以预料到在此过程中有可能出现运行时错误,因此,在过程开始时,我们使用On Error GoTo gperror激活错误捕获功能,并指定从行号“gperror”开始的程序段为错误处理程序(注意,行号后面要加一个冒号,但在语句On Error GoTo gperror中不加冒号)。这样,当程序运行到语句某段代码并发生错误时,将执行行号“error”后面的语句。如果不发生错误,当执行到语句“Exit Sub”时,将退出过程。在过程退出时,错误捕获功能就自动被取消了。

    学生信息管理系统系列之问题三有这句话的应用

     On Error Resume next

     此语句的功能是忽略错误,继续往下执行。使用这种格式的语句,它可以激活错误捕获功能,但并不指定错误处理程序,当错误发生时,不做任何处理,紧接着从发生错误语句之后的语句继续执行

       3  编制错误处理程序 

       这里说一下,从错误处理程序中返回时,我们使用Resume语句。根据不同的返回位置,Resume语句可分为3种:

     Resume 0:返回到产生错误的语句重新执行。“0”可以省略。 
     Resume Next:跳过产生错误的语句,返回到它的下一行语句继续执行。 
     Resume 行号:返回到行号指定的位置继续执行。

     在学生信息管理系统中有此语句的应用

      

   三、代码调试

    个人感觉代码调试非常的重要,如果学不会调试,那就算不上学会了VB

                  首先, 下面来看看编辑的菜单栏

    

    ↑↑上面是快速信息选取,可以通过选中文本点击快速信息显示选中的参数信息

     1、逐语句调试

     这个通过按F8来实现,在敲学生信息管理系统的时候,逐语句用到的特别的多,我们可以通过逐语句调试找到很多错误。同时可以看到错误到底出现在哪里,同时我们可以结合断点调试,一起调试。下面举个例子。

    

       当运行到这里的时候,我们就会看到txtusername被赋值成了1,说明这里是没有问题的,以后的每句话都会给出相应的变量,我们可以通过是否传值来判断。

      2、断点调试

断点调试是指自己在程序的某一行设置一个断点,调试时,程序运行到这一行就会停住,然后你可以一步一步往下调试,调试过程中可以看各个变量当前的值,出错的话,调试到出错的代码行即显示错误,停下

        可以按F9设置断点,或者在代码窗口的左侧。同时逐语句调试的时候可以直接跳到断点哪里,这也就意味着可以节省很多时间。

       调试错误基本就到这里吧。本来想的挺好,但是表达出来的确少了很多东西。如果哪里有错误大神们可以指点,如果不懂的话咱们可以交流。

 

    

  

     


     

 

1 0
原创粉丝点击