在 C#(以及一般的编程中),程序运行过程中可能出现的错误通常分为三大类。作为初级 C# 工程师,理解这三种主要错误类型非常重要:
1. 语法错误(Syntax Errors)
- 发生时机:编译阶段(写代码时或编译时)。
- 原因:代码不符合 C# 语言的语法规则。
- 特点:无法通过编译,程序根本不能运行。
- 常见例子:
int x = 5 // 缺少分号 if (x > 3 { } // 缺少右括号 string name = "Alice" // 忘记 using System;(如果用了 Console 等) - 如何发现:IDE(如 Visual Studio)会用红色波浪线标出,编译器会报错。
✅ 解决方式:根据编译器提示修改代码语法。
2. 运行时错误(Runtime Errors)
- 发生时机:程序已经编译成功,但在运行过程中出错。
- 原因:逻辑上合法的代码,在特定输入或环境下引发异常。
- 特点:程序崩溃或抛出 异常(Exception)。
- 常见例子:
int[] arr = new int[3]; Console.WriteLine(arr[5]); // IndexOutOfRangeException int result = 10 / 0; // DivideByZeroException string s = null; int len = s.Length; // NullReferenceException - 如何处理:使用
try-catch捕获异常,进行错误处理。
✅ 解决方式:编写健壮的代码,做空值检查、边界检查,合理使用异常处理机制。
3. 逻辑错误(Logic Errors)
- 发生时机:程序能正常编译并运行,不报错。
- 原因:代码逻辑有误,导致结果不符合预期。
- 特点:最难发现,因为程序“看起来正常”,但输出错误。
- 常见例子:
// 想计算 1 到 10 的和,但循环条件写错了 int sum = 0; for (int i = 1; i < 10; i++) // ❌ 应该是 i <= 10 或 i <= 9? { sum += i; } // 结果是 45,但预期可能是 55(1+2+...+10)
✅ 解决方式:
- 仔细测试(单元测试、调试);
- 使用断点调试(Debug);
- 代码审查(Code Review)。
📌 小结对比表:
| 错误类型 | 发生阶段 | 是否阻止程序运行 | 是否有提示 | 举例 |
|---|---|---|---|---|
| 语法错误 | 编译时 | ✅ 是 | ✅ 编译器报错 | 缺少分号、括号不匹配 |
| 运行时错误 | 运行时 | ✅ 可能崩溃 | ✅ 抛出异常 | 除零、空引用 |
| 逻辑错误 | 运行时 | ❌ 不崩溃 | ❌ 无提示 | 算法写错、条件判断反了 |
问题
单元测试能保护我们免受哪种类型的错误?
运行时错误和逻辑错误。
c#处理运行时错误的机制是什么?
异常。
C#中的三种错误类型解析
2394

被折叠的 条评论
为什么被折叠?



