C#编程:掌握常用异常类与结构化处理

需积分: 0 0 下载量 150 浏览量 更新于2024-08-22 收藏 937KB PPT 举报
在C#程序设计中,异常处理是一种重要的机制,用于在程序执行过程中遇到不可预见的情况时,优雅地控制流程并提供有用的反馈。本课程的第七章主要关注"常用异常类-结构化异常处理",它涵盖了以下几个关键知识点: 1. **基础异常类**:.NET框架提供了一个基础异常类`System.Exception`,它是所有异常类的父类。预定义的公共语言运行库异常类,如`ArgumentNullException`, `FileNotFoundException`等,都是从`Exception`派生的,用于表示特定类型的系统级错误。 2. **预定义异常与自定义异常**: - **预定义异常**:这些异常是系统内置的,如`IOException`表示I/O操作失败。开发人员通常不会直接创建这些异常,而是让它们自动触发。 - **自定义异常**:通过继承`System.Exception`或其子类,如`ApplicationException`,开发者可以创建自己的异常类型,如`InvalidNumberInput`,用于特定业务场景中表示非预期的输入。 3. **结构化异常处理**: - **Try...Catch...Finally**:这是C#中处理异常的基本结构。`try`块包含可能会抛出异常的代码,`catch`块捕获并处理异常,而`finally`块(可选)无论是否发生异常都会执行,常用于资源清理工作。 4. **异常处理示例**:例如,`transfer_money()`方法中,如果转账操作失败,会引发一个异常。`try...catch`结构可以捕获这个异常,并提供适当的错误处理,比如显示错误消息或记录日志。 5. **异常筛选与处理**: - `catch`块中的错误筛选允许开发者根据特定类型的异常进行处理,如只处理`IOException`而不处理其他类型的异常。 - `catch(E)`通配符捕获可以处理系统中的任何一种异常,但可能不提供足够的上下文信息。 6. **自定义异常引发**:`throw`关键字用于主动抛出异常,程序员可以根据业务逻辑创建并抛出自定义异常,如在检查成绩范围时。 7. **`finally`语句的作用**:`finally`确保在任何情况下都会执行的代码,比如关闭打开的文件、释放资源,即使在`try`块中发生了未被捕获的异常。 本课件深入讲解了C#中的异常处理机制,包括如何使用预定义和自定义异常,以及如何通过结构化的`try...catch...finally`结构有效地管理程序在遇到错误时的行为。理解这些概念对于编写健壮的、可维护的软件至关重要。