• 24 python异常机制


     1 --------------------捕获多个异常-------------------------------------------
     2 try:
     3     pass
     4 except Exception1 as e:
     5     raise 
     6 except Exception2 as e:
     7     raise 
     8 except Exception3 as e:
     9     raise 
    10 。。。。等等
    11 
    12 ##--- 其实等同于以下(也是可以捕获所有异常的)
    13 try:
    14     pass
    15 except Exception as e:
    16     raise 
    17 
    18 
    19 -------------------try  except finally 结构----------------------------------------
    20 
    21 try:
    22     print('try...')
    23     r = 10 / 0
    24     print('result:', r)
    25 except ZeroDivisionError as e:
    26     print('except:', e)
    27 finally:
    28     print('finally...')  ##不管发生什么异常都会执行finally 语句块
    29 print('END')
    30 当我们认为某些代码可能会出错时,就可以用try来运行这段代码,
    31 
    32 如果执行出错,则后续代码不会继续执行,
    33     1,而是直接跳转至错误处理代码,即except语句块,
    34     2,执行完except后,如果有finally语句块,
    35     3,则执行finally语句块,至此,执行完毕。
    36 
    37 ##上面的代码在计算10 / 0时会产生一个除法运算错误:
    38 
    39 --------------------------try  except else  结构-----------------------
    40 list1=range(9)
    41 print(list1)
    42 try:
    43     list1[3]
    44 except IndexError as e:  ## 如果有IndexError 的异常,则执行语句块 
    45     print e
    46 else:
    47     print ('xxx')    ## 如果没有异常,则执行此语句块
    48 
    49 
    50 ------------------try  except else  finally 结构也是可以的-------------------------------
    51 
    52 
    53 ###--------------------- raise(主动抛出异常) 和 assert(断言,一般用于调于,即判断是否为真) ----------------------
    54 
    55 raise -- 主动抛出异常,一般都用在自定义异常,(因为python内置的异常,都会自动抛出的)
    56 
    57 ###----------------自定义异常---------------------
    58 
    59 class ClassMyExcption(Exception):  ##继承异常类
    60     def __init__(self, arg):
    61         super(ClassMyExcption, self).__init__(self)  ## 必须调用父类的构造函数
    62         self.info=arg
    63     def __str__(self):     ## 必须要有此内置特殊函数
    64         return('自定义异常是:{0}'.format(self.info))
    65 
    66 if 1==1:
    67     raise ClassMyExcption('输入非法')  ## 抛出自定义异常对象。程序结束,后面不会执行
    68 
    69 print('xxxx')
    70 
    71 -----结果是:
    72 >>自定义异常是:输入非法
  • 相关阅读:
    如何使用 SPICE client (virt-viewer) 来连接远程虚拟机桌面?
    小米手机会不会更好
    5年一梦
    每天进步一点点——分布式文件系统下的本地缓存
    iOS开发中的NSDateFormatter日期格式解析总结
    IOS假设将一个十六进制的color转换成UIColor,非常有用
    HH实习(hpu1287)(斐波那契运用)
    学习用CMake来编写Qt程序
    【MFC设置静态文本框背景为透明】
    排序(3)---------冒泡排序(C语言实现)
  • 原文地址:https://www.cnblogs.com/2mei/p/9254264.html
Copyright © 2020-2023  润新知