| 写自动化脚本时经常会用到异常处理,下面将python中的异常处理做一整理:     注意:以下所有事列中的111.txt文件不存在,所以会引起异常 用法一:try...except...else..类型 1.没有异常时运行:  
 a = 3
try:
    print(a)
except BaseException as msg:   #用msg变量来接受信息,并将其打印。其中BaseException为所有异常的基类,所有异常都继承与它
    print(msg)
else:
    print("没有异常时执行") 运行结果: 2.有异常时运行:  
 a = 3
b = 4
try:
    print(a)
    open("111.txt",'r')       #使用open以只读的方式打开不存在的文件111.txt
    print(b)
except BaseException as msg:  #用msg变量来接受信息并将其打印
    print(msg)
else:
    print("没有异常时执行") 运行结果:  
 3
[Errno 2] No such file or directory: '111.txt'     ##该条错误信息是msg接收到的信息 上面代码中的print(b)并没有被执行,因为再该行代码的上一步出现异常   用法二:try...except...finally...类型 1.没有异常时运行:  
 a = 3
try:
    print(a)
except BaseException as msg:
    print(msg)
finally:
    print("不管有没有异常都会被执行") 运行结果: 2.有异常时运行:  
 a = 3
try:
    print(a)
    open('111.txt','r')
except BaseException as msg:   
    print(msg)
finally:
    print("不管有没有异常都会被执行") 运行结果:  
 3
[Errno 2] No such file or directory: '111.txt'
不管有没有异常都会被执行     用法三:抛出异常(raise)  
 a = 3
try:
    print(a)
    open('111.txt','r')
except:
    raise Exception('111.txt no exsit')  #raise用于异常抛出 运行结果:  
 3
Traceback (most recent call last):
  File "<stdin>", line 3, in <module>
FileNotFoundError: [Errno 2] No such file or directory: '111.txt'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
  File "<stdin>", line 5, in <module>           #抛出异常
Exception: 111.txt no exsit   自定义异常  
 class TimeError(RuntimeError):       #定义一个异常类,该类应该是典型的继承自Exception类,通过直接或间接的方式
    def __init__(self,arg):
        self.arg = arg
try:
    raise TimeError("Network timeout")   #自定义异常提示
except TimeError as e:
    print(e.arg) 运行结果:   |