14.1 异常概述
异常是程序运行时发生的错误,会中断正常执行流程。
常见异常类型
1 | // NullReferenceException |
14.2 try-catch 语句
基本语法
1 | try |
多个 catch
1 | try |
14.3 finally 块
1 | FileStream fs = null; |
14.4 throw 语句
抛出异常
1 | public void SetAge(int age) |
重新抛出
1 | try |
14.5 自定义异常
1 | [] |
14.6 异常筛选器(C# 6+)
1 | try |
14.7 最佳实践
1. 捕获具体异常
1 | // 不推荐 |
2. 不要吞掉异常
1 | // 不推荐 |
3. 使用 using 自动释放
1 | // 不推荐 |
14.8 本章小结
- 异常使用
try-catch-finally处理 catch按顺序匹配,先具体后一般finally总是执行,用于清理资源throw抛出异常,throw;重新抛出- 自定义异常继承
Exception - 异常筛选器
when提供条件捕获 - 使用
using自动释放资源
练习题
- 编写安全除法方法,处理除零异常
- 创建自定义异常
InvalidEmailException - 使用
try-catch-finally读取文件 - 以下代码输出什么?
1
2
3
4try { Console.WriteLine("A"); throw new Exception(); }
catch { Console.WriteLine("B"); }
finally { Console.WriteLine("C"); }
Console.WriteLine("D");