程序调试与异常处理

程序调试概述

在程序中查找错误的一个过程。

开发过程中检查代码并验证能正常运行的有效方法。保证没问题才给设备使用。

Visual Studio编辑器调试

常用调试操作:

这一行最前面点鼠标左键。 鼠标左键点一下消失。

逐语句、过程(这里面调用方法方法会逐渐执行过去,语句会逐行执行。)

异常处理概述

处理应用程序可能产生的错误或是其他可以中断程序执行的异常情况。

Exception异常类(所有异常父类)--实在不知道什么异常用这个父类去处理

微软官方提供,NET帮助文档

子类

|------------------------------------|----------------------------------------------------|
| 异 常 类 | 说 明 |
| System.ArithmeticException | 在算术运算期间发生的异常 |
| System.ArrayTypeMismatchException | 当存储一个数组时,如果由于被存储的元素的实际类型与数组的实际类型不兼容而导致存储失败,就会引发此异常 |
| System.DivideByZeroException | 在试图用零除整数值时引发 |
| System.IndexOutOfRangeException | 在试图使用小于零或超出数组界限的下标索引数组时引发 |
| System.InvalidCastException | 当从基类型或接口到派生类型的显示转换在运行时失败,就会引发此异常 |
| System.NullReferenceException | 在需要使用引用对象的场合,如果使用null引用,就会引发此异常 |
| System.OutOfMemoryException | 在分配内存的尝试失败时引发 |
| System.OverflowException | 在选中的上下文中所进行的算术运算、类型转换或转换操作导致溢出时引发的异常 |
| System.StackOverflowException | 挂起的方法调用过多而导致执行堆栈溢出时引发的异常 |
| System.TypeInitializationException | 在静态构造函数引发异常并且没有可以捕捉到它的catch子句时引发 |

try...catch语句

捕获异常使用。

所有异常基类:Exception

try

{

被监控的代码 //产生的异常

}

catch(异常类名 异常变量名)

{

异常处理 //要捕获的异常

}

未将对象引用设置到对象实例。

输出异常信息

throw语句

主动引发一个异常。

基本语法(关键字+异常): throw ExObject

throw关键字抛出自定义异常

throw关键字后面跟要抛出异常对象。

try...catch...finally语句

不管try...catch...发生什么异常,finally一定会执行。

释放资源代码写到finally里面。

一个try...catch...finally语句块中可以包含多个catch语句。

使用多个catch语句块注意:捕获exception异常的语句块需放在所有catch语句块后面。

相关推荐
鸟儿不吃草1 分钟前
安卓实现左右布局聊天界面
android·开发语言·python
曦夜日长15 分钟前
C++ STL容器string(一):string的变量细节、默认函数的认识以及常用接口的使用
java·开发语言·c++
代码中介商18 分钟前
C++ STL 标准模板库完全指南:从容器到迭代器
开发语言·c++·stl
winner888120 分钟前
C++ 构造函数、析构函数、虚函数、虚析构
开发语言·c++
北山有鸟22 分钟前
IS_ERR 判断出错后,再用 PTR_ERR 把它强制转换回 int 型的错误码作为函数的返回值。
java·开发语言
格林威26 分钟前
工业视觉检测:提供可视化UI调试工具的实现方式是什么?
开发语言·人工智能·数码相机·ui·计算机视觉·视觉检测·工业相机
phltxy28 分钟前
深度解析:Spring Cloud Gateway 从入门到实战
java·开发语言
AI进化营-智能译站37 分钟前
ROS2 C++开发系列08-传感器数据缓存与指令解析方式之数组、向量与字符串实战
开发语言·c++·缓存·ai
shjita43 分钟前
记录java执行中的一个错误细节
java·开发语言
AI进化营-智能译站1 小时前
ROS2 C++开发系列14-Lambda表达式处理传感器数据流|文件IO保存机器人实验日志
开发语言·c++·ai·机器人