Python Tricks Part 3: Program Structure and Control Flow
Exceptions 异常 exceptions 具有一些标准属性,这些属性在需要针对错误执行进一步操作的代码中可能非常有用。 e.args 这是引发异常时提供的元组,在大多数情况下,这是一个包含描述错误字符串的单元元素元组。 对于 OSError 异常,其值是一个包含整数错误码、字符串错误消息,以及可选文件名的 2 元组或 3 元组。 e.__cause__ 如果该异常是在处理另一个异常时有意引起的 raise ... from ...,Python 会将这两个异常链接起来,形成异常链。 e.__context__ 如果异常是处理异常时无意间导致的,则会产生 e.__context__。 e.__traceback__ 与异常相关联的堆栈回溯对象。 用于存储异常值的变量仅在相关的 except 块内部可以访问,一但控制论离开该块,该变量将变为未定义。 try: int('N/A') except ValueError as e: print('Failed:', e) print(e) # Fails -> NameError. 'e' not defined 多异常处理块通过多个异常子句指定: try: # do something except TypeError as e: # Handle Type error except ValueError as e: # Handle Value error 当然也可以在单个子句中处理多个异常类型 try: # do something except (TypeError, ValueError) as e: # Handle Type or Value error 可以使用 pass 忽略报错 ...