+ 2
[Solved] Why is the 'else' part ignored on the second case but not in the first case?
#first print('First:') try: print(1) print('1' + '1') print(3) except TypeError: print(4) else: print(5) #second print('second') try: print(1) print(1 + '1') print(3) except TypeError: print(4) else: print(5)
3 ответов
+ 1
The statements within the first "try" block do not cause any exception to occur, so the following"except" statement will not be executed. This, the "else"statement will. But in the second "try" statements, the " 1+'1' " causes a TypeError exception, so the "except" statement will be executed. So, the second "else" statement will not be executed. The rules are here:
https://www.sololearn.com/learn/JUMP_LINK__&&__Python__&&__JUMP_LINK/2487/
0
the else statement is executed only if the 'main' statement, the base statement, exited normally, without a break or any exception.
0
I did not try your code but I assume that the else statement "rather belongs to the except statement than to the try statement". We can think of the except statement as the if part to the else statement.
First case:
Try succeeds, so no exception. if no exception than else.
Second case:
Try fails, so exception. If exception, no else.