1.程序的调试和异常处理

  1. 几种调试方法

    a)    CTRL+SHIFT+B  检查语法错误

    b)    F5  调试

    c)    CTRL+F5 开始执行、不调试

    d)    断点调试 设置断点,局部代码可实现逐步调试

    e)    单步调试  F11

  1. "逐语句"和"逐过程"的差异仅在于它们处理函数调用的方式不同。这两个命令都指示调试器执行下一行的代码。如果某一行包含函数调用,"逐语句"仅执行调用本身,然后在函数内的第一个代码行处停止。而"逐过程"执行整个函数,然后在函数外的第一行处停止。如果要查看函数调用的内容,则使用"逐语句";若要避免单步执行函数,那么最好使用"逐过程"。

2.断点操作:断点是源代码中自动进入中断模式的一个标记,它们可以配置为:

 

         1.在遇到断点时,立即进入中断模式;
         2.在遇到断点时,如果布尔表达式的值为true,就进入中断模式;
         3.遇到某断点一定的次数后,进入中断模式;
         4.在遇到断点时,如果自从上次遇到断点以来变量的值发生了变化,就进入中断模式;
         5.把文本输出到调试窗口中,或者执行一个宏.

 

  注意上述功能仅能用于高度程序,如果编译发布程序,就会忽略所有的断点.
       添加断点有3种方法:

 

    1)    在要设置断点行旁边的灰色空白中单击

    2)    右击设置断点的代码行,在弹出的快捷菜单中选择”断点”/”插入断点”命令, 

    3)    单击要设置断点的代码行,选择菜单中的”调试”/”切换断点”命令,

    插入断点后,就会在设置断点的行旁边空白处出现一个红色圆点,并且该行代码也呈现高亮显示,

      删除断点主要有3中方法,分别如下:

    ü   单击设置了断点的代码行左侧的红色圆点.

    ü   在设置了断点的代码行左侧的红色圆点上单击鼠标右键,在弹出的快捷菜单中选择”删除断点”的命令

    ü   在设置了断点的代码行上单击鼠标右键,在弹出的快捷菜单中选择”断点”/”删除断点”命令

3.C#中常见的错误类型,如表:

错误类型

说明

 

Exception

应用程序执行期间发生错误

 

SystemException

系统异常

所有Exception的基类

ArgumentException

当方法提供的任意一个参数无效时,引发此异常

 

ArithmeticException

算数导致的错误

 

DataException

在使用ADO.NET组件时生成错误

System.Data命名空间提供

FormatException

参数的格式不符合被调用方法的参数规范

 

IOException

IO错误

System.IO命名空间提供

IndexOutOfRangeException

数组越界

 

ArgumentNullException

空引用传递给无效参数的方法时引发

对应JAVA的空指针

DivideByZeroException

0为除数

 

OverflowException

运算结果过大,无法以目标格式保存

比如把一个30位数字赋给int

ApplicationException

应用程序执行过程中检测到由应用程序定义的异常

 

TargetException

试图调用无效目标时

System.Reflection命名空间提供

 

4. 异常既不是臭虫也不是用户错误,在C# 里,异常处理就是C# 为处理错误情况提供的一种机制:Try 块的代码是程序中可能出现错误的操作部分;Catch 块的代码是用来         处理各种错误的部分(可以有多个);Finally 块的代码用来清理资源或执行要在try块末尾执行的其他操作(可以省略)。且无论是否产生异常,Finally块都会执行;甚         至可使用throw语句抛出异常

5. C#中异常都是以类的形式出现的,所有的异常类都是Exception的子类,以下是几个常用的具体异常子类:

    a)   ArrayTypeMismatchException:当向数组中保存一个与元素类型不兼容的值时,将会抛出该异常。

    b)   DivideByZeroException:当除数为0时,将会抛出该异常。

    c)   IndexOutofRangeException:使用超出数组边界的索引时,将会抛出该异常。