C#6、三种主要的错误类型是什么

C#中的三种错误类型解析

在 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#处理运行时错误的机制是什么?

异常。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值