在编程中,使用try-catch
捕获多个异常可以显著提升代码的健壮性和可维护性,核心方法包括:通过多个catch
块分别处理不同异常、利用基类统一捕获或使用异常过滤器(如C#的when
)。
-
多
catch
块分层处理
为每种异常类型编写独立的catch
块,按优先级从具体到抽象排列(如先捕获FileNotFoundException
,再捕获通用的IOException
)。确保子类异常优先于父类,避免被通用catch
块拦截。 -
基类统一捕获简化逻辑
若异常处理逻辑相同,可直接捕获基类(如Exception
),但需谨慎使用以避免掩盖潜在问题。适合非关键性异常或日志记录场景。 -
异常过滤器精准控制
部分语言(如C#)支持when
关键字,可在单个catch
块中通过条件筛选异常。例如:catch (Exception ex) when (ex is NullReferenceException || ex is ArgumentException)
-
组合使用与**实践
- 优先处理可恢复的异常,如网络重连;
- 避免空的
catch
块,至少记录日志; - 自定义异常类型可细化业务错误。
合理捕获多个异常能平衡代码的灵活性与稳定性,建议根据实际场景选择策略,并始终保留异常上下文以便调试。