python如何处理异常情况?

时间:2016-05-16 21:42:20

标签: python exception-handling

我学会了使用except函数来防止代码崩溃,但我想更好地理解python如何执行它。

例如,我有添加一对数字的代码,如果变量nums有两个以上的数字,则应该给出AssertionError。

1    def sum_pair(pair):
2        assert len(pair) == 2
3        return pair[0] + pair[1]

4    try:
5        total = sum_pair(nums)
6        print 'The total is', total
7    except AssertionError:
8        print 'Abort'

所以从我看来,python只执行第1,2,4,5,7和8行。 这是理解它的正确方法吗?

谢谢

2 个答案:

答案 0 :(得分:2)

当发出异常信号时,将在调用堆栈中搜索try块,该块具有与异常类型匹配的except子句。堆栈被解开到那一点,执行except子句中的代码,然后在try块之后继续执行。

因此,当第2行检测到断言失败时,它会立即退出sum_pair()函数并从第8行开始执行代码。

答案 1 :(得分:1)

从技术上讲,它按顺序执行第4,5,1,2,7,8行。