当前位置:K88软件开发文章中心编程语言PythonPython01 → 文章内容

Python3 错误和异常

减小字体 增大字体 作者:佚名  来源:网上搜集  发布时间:2019-1-10 11:00:18

reviousself.next = nextself.message = message大多数的异常的名字都以"Error"结尾,就跟标准的异常命名一样。定义清理行为try 语句还有另外一个可选的子句,它定义了无论在任何情况下都会执行的清理行为。 例如:


>>>try:


... raise KeyboardInterrupt... finally:


... print('Goodbye, world!')...Goodbye, world!Traceback (most recent call last):


File "<stdin>", line 2, in <module>KeyboardInterrupt以上例子不管 try 子句里面有没有发生异常,finally 子句都会执行。如果一个异常在 try 子句里(或者在 except 和 else 子句里)被抛出,而又没有任何的 except 把它截住,那么这个异常会在 finally 子句执行后再次被抛出。下面是一个更加复杂的例子(在同一个 try 语句里包含 except 和 finally 子句):


>>>def divide(x, y):


try:


result = x / yexcept ZeroDivisionError:


print("division by zero!")else:


print("result is", result)finally:


print("executing finally clause")>>> divide(2, 1)result is 2.0executing finally clause>>> divide(2, 0)division by zero!executing finally clause>>> divide("2", "1")executing finally clauseTraceback (most recent call last):


File "<stdin>", line 1, in ?File "<stdin>", line 3, in divideTypeError:


unsupported operand type(s) for /:


'str' and 'str'预定义的清理行为一些对象定义了标准的清理行为,无论系统是否成功的使用了它,一旦不需要它了,那么这个标准的清理行为就会执行。这面这个例子展示了尝试打开一个文件,然后把内容打印到屏幕上:


for line in open("myfile.txt"):


print(line, end="")以上这段代码的问题是,当执行完毕后,文件会保持打开状态,并没有被关闭。关键词 with 语句就可以保证诸如文件之类的对象在使用完之后一定会正确的执行他的清理方法:


with open("myfile.txt") as f:


for line in f:


print(line, end="")以上这段代码执行完毕后,就算在处理过程中出问题了,文件 f 总是会关闭。

上一页  [1] [2] 


Python3 错误和异常