捕获异常和处理异常有什么区别?

2 投票
2 回答
1733 浏览
提问于 2025-04-15 20:21

我在研究Python中的异常处理,看到一篇博客把“捕获异常”和“处理异常”区分开来了。有人能解释一下这两者之间的核心区别吗?不仅是针对Python,也包括整体的概念区别?在谷歌搜索“异常捕获 处理”也没找到太有用的信息。

2 个回答

0

从概念上讲,我会把捕获定义为添加一些代码,以限制错误对其他代码部分的影响,或者防止错误信息被操作系统显示给用户。

处理错误则是指在出现错误时采取适当的措施来应对这个错误。

从伪代码的角度来看:

try
  // Something which may cause an error - this is trapped by wrapping in a try/catch
catch
  //  doing something appropriate in response to the error occurring - handle it
finally
3

我想说,“捕获”和“处理”异常其实是同一个意思:你必须捕获它才能处理,但捕获的过程和处理的过程是不同的。

捕获但不处理 = 抑制,换句话说就是这样。处理异常意味着你要对你得到的信息做点什么:比如记录下来、把它传递给更高层的代码、如果这个异常不是完全意外的情况就采取一些行动等等。

换句话说,捕获异常就是你有一个代码结构,所有异常情况都会流入这个结构里,在这里你可以选择如何处理你发现的信息。

撰写回答