zoukankan      html  css  js  c++  java
  • python自定义异常,使用raise引发异常

    1.自定义异常类,自定义的异常类必须是Exception或者Error的子类!

     1 #!/usr/bin/env python
     2 # encoding: utf-8
     3 
     4 class IllegalException(Exception):
     5     '''
     6     Custom exception types
     7     '''
     8     def __init__(self, parameter, para_value):
     9         err = 'The parameter "{0}" is not legal:{1}'.format(parameter, para_value)
    10         Exception.__init__(self, err)
    11         self.parameter = parameter
    12         self.para_value = para_value

    2.try中使用raise语句来引发一个异常,其中check_positive_int(para_list)函数是用来检查输入的list是否为正整数。

     1 def check_positive_int(para_list):
     2         '''
     3         @summary: check whether the parameter is positive integer
     4         @param: para_list: a list,para_list: a list,[{'key':'para1','value':para1},{'key':'para2','value':para2}]
     5         '''
     6         for item in para_list:
     7             if not (item['value'] > 0 and isinstance(item['value'], int)):
     8                 return item['key'], '{0} is not a positive integer'.format(str(item['value']))
     9         return True
    10 
    11 
    12 try:
    13     integer = check_positive_int([{'key':'para1', 'value':1}, {'key':'para2', 'value':-2}])
    14     if integer != True:
    15         raise(IllegalException(integer[0], integer[1]))
    16 except IllegalException, x:
    17     print 'x--->', x
    18     print 'x.parameter--->', x.parameter
    19     print 'x.para_value--->', x.para_value
    20 else:
    21     print 'NO ERROR'

    3.执行try,由于我们要校验的list[{'key':'para1', 'value':1}, {'key':'para2', 'value':-2}]中有负数值,所以raise我们自定义的异常。

    输出结果为:

    1 x---> The parameter "para2" is not legal:-2 is not a positive integer
    2 x.parameter---> para2
    3 x.para_value---> -2 is not a positive integer
  • 相关阅读:
    AJAX传输图片文件
    和内嵌的iframe进行通讯
    ts的特殊数据类型
    Angular RxJs:针对异步数据流编程工具
    Angular路由使用
    RBAC基于角色的权限管理模型
    Java中的实体类--Serializable接口、transient 关键字
    字符串问题----将整数字符串转换成整数值
    字符串问题----判断两个字符串是否互为旋转词
    字符串问题----去掉字符串中连续出现K个0的子串
  • 原文地址:https://www.cnblogs.com/mianbaoshu/p/7810696.html
Copyright © 2011-2022 走看看