首页 > 技术文章 > 异常的处理方式

watchslowly 2019-02-01 11:50 原文

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.主动捕获异常

那么,如果我们想自己去捕获异常呢?

因为在有些情况下,这并不是我们想要的。列如,服务器程序一般需要在内部发生错误时依然保持继续工作。如果

推荐阅读