zoukankan      html  css  js  c++  java
  • 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.')
  • 相关阅读:
    HDU 5569 matrix
    HDU 2795 Billboard
    HDU 1394 Minimum Inversion Number
    HDU 1754 I Hate It
    HDU 1166 敌兵布阵
    FOJ 2206 函数求解
    hihoCoder 1252 Kejin Game
    hihoCoder 1257 Snake Carpet(很简单的构造方法)
    2015 ACM / ICPC 亚洲区域赛总结(长春站&北京站)
    HDU 2485 Destroying the bus stations
  • 原文地址:https://www.cnblogs.com/summer1019/p/11346450.html
Copyright © 2011-2022 走看看