python异常处理

  • 语法:

    1
    2
    3
    4
    5
    6
    try:
    except TypeError: #相当于if判断
    except 错误类型: #多个except elif
    except Exception as e: #如果所有的except都没捕获到,就走Exception
    else: #没有异常,走else语句
    finally: #总会被执行,不管有没有异常
  • try 基本使用

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    In [4]: 1 + "2"                                                                 
    ---------------------------------------------------------------------------
    TypeError Traceback (most recent call last)
    <ipython-input-4-db092cb74d2d> in <module>
    ----> 1 1 + "2"

    TypeError: unsupported operand type(s) for +: 'int' and 'str'
    # 这时程序报错会退出如果用 try处理,只会抛出异常,下面的程序会接着执行
    In [5]: try:
    ...: 1 + "2"
    ...: except TypeError:
    ...: print('str to int error.')
    ...: except Exception as e:
    ...: print(e)
    ...: print('test')
    ...:
    ...:
    str to int error.
    test
  • Exception使用,会将没有定义的异常,抛出

    1
    2
    3
    4
    5
    6
    7
    8
    In [6]: try: 
    ...: 1 + abc
    ...: except TypeError:
    ...: print('str to int error.')
    ...: except Exception as e:
    ...: print(e)
    ...:
    name 'abc' is not defined