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