C 中的异常处理到底怎么玩?
偶们是码农,免不了会陷入各种错误的深渊。在 C 中,异常处理就是一把利器,助你在错误中杀出一条血路。
异常为何物?
异常就是程序里的小意外,执行过程中出了点岔子,比如:
1. 文件找不到
2. 数据类型不匹配
3. 内存分配失败
捕捉异常:try-catch 大法
C 为我们提供了 try-catch 大法,就像一个安全网,在异常发生时稳稳接住它。
c
try
// 危险操作
catch (Exception ex)
// 异常处理代码
专项捕获:花式 Exceptions
有时,我们只想针对特定类型的异常进行处理。别愁,catch 支持多重选择:
c
try
// 危险操作
catch (ArgumentNullException ex)
// 处理 ArgumentNullException
catch (InvalidOperationException ex)
// 处理 InvalidOperationException
自创异常:定制你的错误
有时候,自带的异常不够用,我们可以自己动手丰衣足食。只需要继承 Exception 基类,就能创造独一无二的异常:
c
public class MyCustomException : Exception
// 异常信息
异常链:溯本追源
一个异常可能引发另一个异常,形成异常链。我们可以通过 InnerException 属性探索异常的源头:
| 名称 | 说明 |
|---|---|
| Message | 异常信息 |
| StackTrace | 调用栈信息 |
| InnerException | 引发当前异常的异常 |
进阶玩法:自定义异常处理
其实,catch 魔术背后还藏着更多的秘诀:
1. 异常筛选器:根据条件过滤异常
2. 目标异常:指定要捕获的异常类型
3. 异常过滤:定义自己的异常处理逻辑
1. 你最常用的异常处理方式是什么?
2. 自定义异常在哪些场景下有用?
添加微信