关于VS中的错误处理和调试
来源:互联网 发布:38周胎儿发育标准数据 编辑:程序博客网 时间:2024/05/16 09:17
关于错误和调试的基本概念
- 错误
语法错误:比如变量名错误等,导致编译器无法编译,编译器能够实时报错
//语法错误,变量名出错 int temp = 235; tem = 43;
语义错误(逻辑错误):逻辑在某些方面有瑕疵,会导致结果和预想中的不一样,但是能够编译成功,编译器不会报错
//逻辑错误,结果与预期的不同 int num1 = 34; int num2 = 23; int sum = num1 * num2;
- 调试
在调试出错之后,使用VS提供给我们的调试功能,找到错误的原因后修改代码
错误处理:对可能发生错误的地方采取预防措施,并编写弹性代码来处理可能会发生的错误
调试的两种方法
正常模式下的调试
1. VS中我们使用Console.WriteLine(Write)方法向控制台输出变量的值,通过这个我们可以查看变量的值是否符合语句来调试错误。
2. Unity中使用Debug.Log(),Debug.LogError(),Debug.LogWarn()三个方法向unity中的Console窗口输出信息,帮助我们调试错误。
中断模式下的调试
中断模式指我们可以暂停程序的执行,然后查看程序中的状态,也可以让程序继续执行。
断点
我们使用断点来让程序中断。
断点是源代码中自动进入中断模式的一个标记,当遇到断点的时候,程序会进入中断模式。
插入断点有四个方法
- 右击要插入断点的代码行,选择breakpoint(断点)->insert breakpoint(插入断点)
- 光标定位到代码行,选择菜单上的Debug(调试)->Toggle breakpoint(切换断点)
- 光标定位到代码行,按下F9,再次按下F9则取消断点
- 在需要添加断点的行首位置,直接单击,再次单击取消断点
中断模式下如何查看以及修改变量的值?
VS中进入中断模式后,会有很多窗口能够监视程序。
- 局部变量窗口:在这个窗口中,我们可以看到整个方法内所有变量的值和类型
- 监视窗口:因为在局部变量中,整个方法的变量都显示出来了,而我们可以在这个窗口中输入自己想要查看的变量,可以直接忽略那些无关紧要的变量。
- 调用堆栈窗口:在这个窗口中,我们可以查看到在这个方法中调用了哪些函数。
- 即时窗口:在这个窗口中,我们可以查看任意变量的值,还可以修改变量的值。
异常处理(捕捉异常)
处理异常的语法结构如下(包含了三个关键字 try catch finally)
try{}catch(){}finally{}
其中catch块可以有0或多个,finally可以有0或1个,但是catch和finally块至少要有一个,也可以同时存在。
当try语句中的一条语句出错,则try块中后面的语句也不会执行。
有一点要注意的是,catch捕捉的异常类型不能够写错,不然程序依旧无法正常运行,或者可以不填,默认捕捉所有的参数。
数组下标越界的例子:
try{ int[] array = { 1, 2, 3, 4 }; int myEle = array[4];}//catch(IndexOutOfRangeException e)//{// Console.WriteLine("发生了异常:IndexOutOfRangeException");// Console.WriteLine("数组下标越界");//}catch(NullReferenceException e) //捕捉异常的类型不对,所以程序依旧无法正常运行{ Console.WriteLine("发生了异常");}catch //不说明捕捉异常的类型,默认捕捉所有异常{ Console.WriteLine("数组下标越界");}finally{ Console.WriteLine("这里是finally语句");}
该捕捉什么类型的异常,在以后练习代码的过程中,会慢慢熟悉。
- 关于VS中的错误处理和调试
- C#中的调试和错误处理
- 调试和错误处理
- 错误处理和调试
- VS代码调试运行中的错误
- 关于VS中的调试信息输出
- 关于VS 动态库和 静态调试
- VS.NET调试.NET出现的常见错误处理
- JavaScript中的错误和调试
- VS 调试错误
- Visual Basic的调试和错误处理
- Base-Jsp-4-错误处理和调试
- 快速浏览了“调试和错误处理”
- C#的调试和错误处理
- 小议C#错误调试和异常处理
- 第7章 调试和错误处理
- C#调试和错误处理(1)
- 第五篇 调试和错误处理
- 使用Json设置网页省份与城市的级联查询
- [问题解决]Android中getDrawable和getColor过时的替代方法
- web移动端常见BUG2
- 零基础通过SugarNMS实现服务器监控
- 史上最简单的SpringCloud教程 | 第七篇: 高可用的分布式配置中心(Spring Cloud Config)
- 关于VS中的错误处理和调试
- 42. Trapping Rain Water
- lambda expressions are not supported at this language level错误
- js正则表达式的使用详解
- 股票交易手续费标准
- 敲诈不成,IT约聘人员把企业网站流量导至色情网站
- 1101: 逆序数字(函数专题)
- 诗歌十一 十二则名门家训(非淡泊无以明志,非宁静无以致远)
- 用两队列实现一个栈