27-python基础-python3-异常处理(try except)

  • 到目前为止,在 Python 程序中遇到错误,或“异常”,意味着整个程序崩溃。不希望这发生在真实世界的程序中。
  • 相反,希望程序能检测错误,处理它们,然后继续运行。
 
实例1:
当试图用一个数除以零时,就会发生 ZeroDivisionError。
根据错误信息中给出的行号,知道 spam()中的 return 语句导致了一个错误。
中断程序的执行。
1 def spam(divideBy):
2     return 42 / divideBy
3 
4 print(spam(2))
5 print(spam(12))
6 print(spam(0))
7 print(spam(1))
21.0
3.5
Traceback (most recent call last):
File "C:/zeroDivide.py", line 6, in <module>
print(spam(0))
File "C:/zeroDivide.py", line 2, in spam
return 42 / divideBy
ZeroDivisionError: division by zero

实例2:

错误可以由 try 和 except 语句来处理。
那些可能出错的语句被放在 try 子句中。
如果在 try 子句中的代码导致一个错误,程序执行就立即转到 except 子句的代码。
一旦执行跳到 except 子句的代码,就不会回到 try 子句。它会继续照常向下执行。
 1 def spam(divideBy):
 2     try:
 3         return 42 / divideBy
 4     except ZeroDivisionError:
 5         print('Error: Invalid argument.')
 6 
 7 print(spam(2))
 8 print(spam(12))
 9 print(spam(0))
10 print(spam(1))            
21.0
3.5
Error: Invalid argument.
None
42.0

实例3:

对比实例2:

print(spam(1))从未被执行是因为,
一旦执行跳到 except 子句的代码,就不会回到 try 子句。它会继续照常向下执行。
 1 def spam(divideBy):
 2     return 42 / divideBy
 3 
 4 try:
 5     print(spam(2))
 6     print(spam(12))
 7     print(spam(0))
 8     print(spam(1))
 9 except ZeroDivisionError:
10     print('Error: Invalid argument.')
原文地址:https://www.cnblogs.com/summer1019/p/11346450.html