异常
python使用被称为异常的特殊对象来管理程序执行期间发生的错误。每当发生让python不知所措的错误时,它都会创建一个异常对象。如果你编写了处理该异常的代码,程序将继续运行;如果你未对异常进行处理,程序将停止。
异常是使用try-except代码块处理的。try-except代码块让python执行指定的操作,同时告诉python发生异常时怎么办。
处理ZeroDivisionError异常
我们来看一个引发异常的简单错误,即用0作除数,这时python无法按要求做,就会创建一个ZeroDivisionError异常对象。
使用try-except代码块
当你认为可能发生了错误时,可编写一个try-except代码块来处理可能引发的异常。
如果try-except代码块后面还有其他代码,程序将接着运行,因为已经告诉了python如何处理这种错误。
使用异常避免崩溃
发生错误时,如果程序还有工作没有完成,妥善地处理错误就尤其重要。这种情况经常会出现在要求用户提供输入的程序中;如果程序能够妥善地处理无效输入,就能再提示用户提供有效输入,而不至于崩溃。
else代码块
通过将可能引发错误的代码放在try-except代码块中,可提高这个程序抵御错误的能力。
try-except-else代码块的工作原理大致是:python尝试执行try代码块中的代码;except代码块告诉python,如果它尝试运行try代码块中的代码时引发了指定的异常,该如何处理;else代码块是仅在try代码块成功时才需要执行的代码。
处理FileNotFoundError异常
使用文件时,一种常见的问题是找不到文件:你要查找的文件可能在其他地方、文件名可能不正确或这个文件根本不存在。对于这些情形,都可使用try-except代码块以直观的方式进行处理。
分析文本
你可以分析包含整本书的文本文件。这里使用方法split(),它根据一个字符串创建一个单词列表,以空格为分隔符将字符串拆分成多个部分。
失败时一声不吭
在前面的示例中,我们告诉用户有一个异常时,会出现提示信息,但有时候你可能希望程序在发生异常时一声不吭,就像什么都没发生一样继续运行,这时可以在except代码块中使用pass语句。pass语句还充当了占位符,它提醒你在程序的某个地方什么都没有做,并且以后也许要在这里做些什么。