在C#编程中,异常处理是保障程序健壮性和用户体验的重要机制。虽然.NET框架提供了大量内置异常类型(如ArgumentException、NullReferenceException等),但在实际开发中,我们常常需要针对特定业务场景定义自己的异常类型。本文将手把手教你如何创建和使用C#自定义异常,即使是编程新手也能轻松上手。
使用自定义异常类有以下优势:
InsufficientBalanceException 比 InvalidOperationException 更明确)在C#中,所有异常类都继承自System.Exception基类。创建自定义异常只需定义一个新类并继承它即可。
基本结构如下:
using System;// 自定义异常类:账户余额不足异常public class InsufficientBalanceException : Exception{ // 无参构造函数 public InsufficientBalanceException() { } // 带消息的构造函数 public InsufficientBalanceException(string message) : base(message) { } // 带消息和内部异常的构造函数 public InsufficientBalanceException(string message, Exception innerException) : base(message, innerException) { }} 上面的代码展示了标准的自定义异常实现方式。三个构造函数是推荐写法,以确保异常类能被序列化并在不同上下文中正确使用。
使用throw关键字即可抛出你定义的异常。下面是一个银行转账的示例:
public class BankAccount{ public decimal Balance { get; private set; } public BankAccount(decimal initialBalance) { Balance = initialBalance; } public void Withdraw(decimal amount) { if (amount > Balance) { // 抛出自定义异常 throw new InsufficientBalanceException( $"余额不足!当前余额:{Balance:C},尝试取款:{amount:C}"); } Balance -= amount; }} 使用try-catch语句可以捕获特定的自定义异常:
try{ var account = new BankAccount(100m); account.Withdraw(150m); // 尝试取款150元}catch (InsufficientBalanceException ex){ Console.WriteLine($"【业务错误】{ex.Message}"); // 可在此处记录日志、提示用户等}catch (Exception ex){ // 捕获其他未预期的异常 Console.WriteLine($"【系统错误】{ex.Message}");} 通过这种方式,你可以对C#异常处理进行精细化控制,使程序在出错时仍能优雅降级或给出明确反馈。
ValidationException)通过本文,你已经学会了如何在C#中创建、抛出和捕获自定义异常类。合理使用这一机制,不仅能提升代码质量,还能让错误处理更加精准高效。记住,良好的异常处理是专业开发者的重要标志之一。
现在就去你的项目中试试吧!为你的业务逻辑添加专属的异常类型,让你的代码更清晰、更可靠。
关键词:C#自定义异常, 异常处理, C#异常类, 抛出自定义异常
本文由主机测评网于2025-12-03发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://www.vpshk.cn/2025122307.html