7.21 C#学习笔记(调试与错误排查、异常处理)

调试与错误排查

错误(BUG):代码难免会出现错误
比如变量名不规范导致编译器无法编译:    int 1num=10;(语法错误)
有时候在逻辑方面有缺陷,也会生成错误,这种错误叫语义错误,也叫逻辑错误。
排查
1.在VS 中使用Console.WriteLine或Console.Write方法向控制台输出,通过查看输出结果是否达到预期来调试错误
2.中断模式(DeBug)下调试
中断是程序进入暂停状态,然后通过查看程序中某些程序的状态,也可让程序继续执行。


如何让程序中断?
1.断点:
断点是源代码进入中断模式的一个标记,当程序遇到断点时程序会进入中断模式,只需要在行号前点一下即可。
断电可以打在任意位置,空行和注释行除外。
打上断点后程序只会执行断点前的代码,可以查看到断点前的数据值
2.Console.ReadLine()://可以使我们的程序暂停,当执行到这里时会等待用户输入,等待的过程下面的代码不会执行

在断点模式下,单步执行代码,点击继续程序会运行到下一个断点的位置
逐语句   逐过程
相同点:都是一步一步执行代码
不同点:逐语句遇到函数会执行到函数内部,逐过程不会。

异常处理

//异常处理:
startLoop:
    Console.WriteLine("请输入0-10之间想要查看的序号");
    int[] num = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 };
    int a = int.Parse(Console.ReadLine());

    try
    {//要捕获的代码  可能出现异常的代码   捕获阶段
        Console.WriteLine(num[a]);
    }
    //要捕获的异常    异常类     捕获异常之后执行,没有异常不执行
    //Exception 所有异常
    catch (Exception ex)    //()中也可以不写,如果不写表示方式任何异常都会执行这个catch块
    {
        //可以通过Exception异常类的对象ex获取到具体的异常是由谁引起的
        //如果在 捕获异常阶段不知道具体的异常类时使用Exception
        //Console.WriteLine(ex);
        Console.WriteLine("输入错误,请重新输入");
        goto startLoop;
    }
    
    //finally     //不管有没有异常都会执行(可有可无)
    ////没有catch必须要有finally
    //{
    //    Console.WriteLine("1111");
    //}
    //throw 抛出异常
    //throw ex;

使用goto语句实现输错一直再次输入,知道输对的操作。

你可能感兴趣的:(c#,visual,studio)