一个try
代码块可以对应多个catch
块或finally
块,用于处理不同类型的异常或确保资源释放。关键点包括:① 多catch
块按顺序匹配异常类型;② finally
块无论是否异常都会执行;③ 合理设计异常处理层级提升代码健壮性。
-
多
catch
块处理不同异常
在try
后串联多个catch
块可针对性处理不同异常。例如先捕获NullPointerException
,再捕获更通用的Exception
。匹配顺序从上到下,因此需将具体异常类型放在前面,避免被通用类型拦截。 -
finally
块的必然执行
无论try
是否抛出异常或catch
是否成功处理,finally
块中的代码(如关闭文件、数据库连接)必定执行。注意避免在finally
中抛出新异常,否则会覆盖原异常信息。 -
层级设计优化可读性
通过细分异常类型,代码逻辑更清晰。例如对网络请求,可分别处理IOException
(网络问题)和JSONException
(数据解析错误),而非统一用Exception
捕获。
提示:避免过度使用catch
导致冗余,未明确处理逻辑的异常建议抛出或记录日志而非直接忽略。