Python学习笔记之try-except
python使用被称为异常的特殊对象来管理程序执行期间发生的错误。每当发生让python不知所措的错误时,它都会创建一个异常对象。如果你编写了处理该异常的代码,程序将继续运行;如果你未对异常进行处理,程序将停止,并显示一个traceback,其中包含有关异常的报告。
异常是使用try-except代码块处理的。try-except代码块让python执行指定的操作,同时告诉python发生异常时怎么办。使用了try-except代码块时,即便出现异常,程序也将继续运行:显示你编写的友好的错误消息,而不是抛出原始错误traceback信息。
下面举个例子:
在division.py中写入下面代码:
print(5/0)
意思就是把5除以0的结果打印出来,但是我们都知道0是不能作为除数的,所以这个肯定是会报错的。
执行结果如下:
1 traceback (most recent call last): 2 file "division.py", line 1, in <module> 3 print(5/0) 4 zerodivisionerror: division by zero
返回了一个traceback信息,在文件"division.py"的第1行有一个异常,异常对象为zerodivisionerror,异常原因是:division by zero,并且停止运行程序。
这显然不是我们所希望的。
当你认为可能发生了错误时,可编写一个try-except代码块来处理可能引发的异常。你让python尝试运行一些代码,并告诉它如果这些代码引发了指定的异常,该怎么办。
从上面的异常信息中,我们知道了是异常对象类型为zerodivisionerror,要处理这类异常的try-except代码块可以这样写:
1 try: 2 print(5/0) 3 except zerodivisionerror: 4 print("除数不能为0")
将引起异常的代码print(5/0)放在try中运行,如果try代码块中的代码运行起来没有问题,python将跳过except代码块;如果try代码块中的代码导致了错误,python将查找这样的except代码块,并运行其中的代码,即其中指定的错误与引发的错误相同。
在这个示例中,try代码块中的代码引发了zerodivisionerror异常,因此python指出了该如何解决问题的except代码块,并运行其中的代码。这样,用户看到的是一条友好的错误消息,而不是traceback:
1 除数不能为0
上一篇: 古代有一职业待遇非常好,拿皇位换也没人换