try...except可以将可能发生错误的语句放在try模块里面进行异常处理;
try..except..else当没有异常发生时,else中的语句将会被执行。
处理一组异常可以这样写(其中e代表异常的实例):
1 data = {'a':1} 2 try: 3 pass 4 except (IOError ,ZeroDivisionError),e: 5 print e
用户自定义异常通过创建一个新的异常类,程序可以命名它们自己的异常。异常应该是典型的继承自Exception类,通过直接或间接的方式。以下为与RuntimeError相关的实例,实例中创建了一个类,基类为RuntimeError,用于在异常触发时输出更多的信息。在try语句块中,用户自定义的异常后执行except块语句,变量 e 是用于创建Networkerror类的实例
1 class Networkerror(RuntimeError): 2 def __init__(self, arg): 3 self.args = arg 4 5 6 try: 7 raise Networkerror("Bad hostname") 8 except Networkerror as e: 9 print('哦,也')
else和finally语句示例:
KeyError,FileNotFoundError都是错误类型,如果没有定义错误类型则由Exception返回,但是个别的异常不能处理。
1 try: 2 # data['s'] 3 # open('txt.txt') 4 # a=setattr() 5 a=1 6 except KeyError as e: 7 print("关键字错误",e) 8 except FileNotFoundError as a: 9 print("文件错误",a) 10 except Exception as b: 11 print('异常的父类,可以捕获所有的异常,个别除外',b) 12 13 else: 14 print('保护不抛出异常的代码') 15 16 finally: 17 print('不管对不对都要执行')
来源:https://www.cnblogs.com/jesse-gong/p/7891313.html