我学会了使用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行。 这是理解它的正确方法吗?
谢谢
答案 0 :(得分:2)
当发出异常信号时,将在调用堆栈中搜索try
块,该块具有与异常类型匹配的except
子句。堆栈被解开到那一点,执行except
子句中的代码,然后在try
块之后继续执行。
因此,当第2行检测到断言失败时,它会立即退出sum_pair()
函数并从第8行开始执行代码。
答案 1 :(得分:1)
从技术上讲,它按顺序执行第4,5,1,2,7,8行。