1.异常的处理方式
每当程序在运行时检测到程序错误时,Python就会引发异常。对待异常有两种方法:一是可以在程序中捕捉和响应错误;或者忽略已发生的异常。
如果是忽略已发生的异常,Python默认的异常处理行为将启动:停止程序,打印错误信息。如果不想启动这种默认行为,就要写try语句来捕捉异常
并从异常中 恢复,当程序运行检测到错误时,Python会跳到try处理器,而程序在try之后会重新继续执行。
1.1.默认的异常处理器
首先来看看Python自带的默认异常处理器,代码片段:
def fetcher(obj, index): return obj[index] x = 'spam' print(fetcher(x, 3)) print(fetcher(x, 9))
运行结果:
m Traceback (most recent call last): File "/Desktop/test.py", line 6, in <module> print(fetcher(x, 9)) File "/Desktop/test.py", line 2, in fetcher return obj[index] IndexError: string index out of range
从这个例子可以看到,我们试图对字符串末尾以后的位置做索引运算,当函数尝试执行obj[9]时,就会触发异常。Python会替序列检测到
超出边界的索引运算,并通过抛出内置的IndexError异常进行报告。
1.2.主动捕获异常
那么,如果我们想自己去捕获异常呢?
因为在有些情况下,这并不是我们想要的。列如,服务器程序一般需要在内部发生错误时依然保持继续工作。如果