内容简介:当出现异常时, Python 就会创建一个异常对象 。 如果我们编码处理了该异常, 那么程序将继 续运行; 否则程序将停止, 并打印一个 traceback , 内部包含具体异常报告。可以使用 try-except 代码块来处理异常。编码处理异常,并编写友好的错误消息,这要好于有时令人迷惑的 traceback。比如经典的除 0 操作,如果直接运行,就会出现 Traceback:
当出现异常时, Python 就会创建一个异常对象 。 如果我们编码处理了该异常, 那么程序将继 续运行; 否则程序将停止, 并打印一个 traceback , 内部包含具体异常报告。
可以使用 try-except 代码块来处理异常。编码处理异常,并编写友好的错误消息,这要好于有时令人迷惑的 traceback。
1 try-except 代码块
比如经典的除 0 操作,如果直接运行,就会出现 Traceback:
print(3 / 0) 复制代码
运行结果:
Traceback 中的 ZeroDivisionError,就是生成的异常对象。
我们利用 try-except 代码块,改写上述示例:
try: print(5 / 0) except ZeroDivisionError: print('除数不能是零哦') 复制代码
运行结果:
除数不能是零哦
再次出现 ZeroDivisionError 异常时,就会打印出友好提示啦O(∩_∩)O~
处理异常对象,还有一个好处:就是安全。如果某些人怀有恶意, 他会通过 traceback 获知我们不希望他知道的信息 。比如, 运行程序的文件名称, 以及部分代码 。 专业的黑客可以利用这些信息,对程序发起攻击 。
把可能抛出错误的代码,放在 try-except 代码块中, 还可以提高程序的健壮性。
2 else 代码块
try 代码块执行成功后,会执行 else 代码块中的内容。
print('请输入两个数,小迪同学将做除法操作。') print('输入 q,则退出。') while True: dividend = input('被除数:') if (dividend == 'q'): break divisor = input('除数:') try: result = float(dividend) / float(divisor) except ZeroDivisionError: print('除数不能是零哦') else: print(result) 复制代码
运行结果:
只要程序依赖于外部元素, 比如用户输入、 打开文件或网络链接, 就有可能出现异常。 所以,综合使用 try-except-else 代码块,即可以避免用户无意间造成错误,还可以抵御恶意攻击,可谓是一举两得哦O(∩_∩)O~
以上所述就是小编给大家介绍的《说说在 Python 中如何处理异常》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Programming in Haskell
Graham Hutton / Cambridge University Press / 2007-1-18 / GBP 34.99
Haskell is one of the leading languages for teaching functional programming, enabling students to write simpler and cleaner code, and to learn how to structure and reason about programs. This introduc......一起来看看 《Programming in Haskell》 这本书的介绍吧!