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

时间:2010-03-12 15:41:06

标签: python exception-handling

我正在研究python中的异常处理和我阅读的博客文章,区分陷阱和处理异常。有人可以解释这两者之间的核心差异,特别是在python和整体概念上的区别吗?谷歌搜索“异常陷阱处理”并不是非常有用。

2 个答案:

答案 0 :(得分:2)

我会说“捕获”和“捕获”异常是一回事:你必须捕获/捕获它以便能够处理它,但捕获它的行为与处理它的行为不同。

换句话说,

Trapping-but-not-handling = supressing。处理意味着你实际上对你掌握的信息做了一些事情:记录它,把它扔到一个新的水平,如果异常不是完全出乎意料的话就执行一些动作等等。等等。

或者换句话说,捕获异常意味着你有一个代码构造,异常情况会在哪里流动,你可以选择处理你在那里找到的信息。

答案 1 :(得分:0)

就概念差异而言,我将陷阱定义为添加代码,以限制错误扩展到代码的其他部分或由操作系统显示给用户的影响。< / p>

处理错误会做出适当的响应错误。

来自伪代码的立场:

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