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

python自定义异常,使用raise引发异常的更多相关文章

  1. Python——raise引发异常

    程序出现错误,会自动引发异常,Python也允许使用raise语句自行引发异常. 一.使用raise引发异常 单独一个raise引发异常,默认引发RuntimeError异常,例: try: prin ...

  2. python——异常except语句用法与引发异常

    except: #捕获所有异常 except: <异常名>: #捕获指定异常 except:<异常名1,异常名2):捕获异常1或者异常2 except:<异常名>,< ...

  3. devi into python 笔记(五)异常 文件操作 sys os glob模块简单实用

    异常: Java异常: try catch块处理异常,throw引发异常. Python异常: try except块处理异常,raise引发异常. 异常如果不主动处理,则会交给Python中的缺省处 ...

  4. python学习笔记(七)、异常

    在实际开发中,往往不会出现一个系统编写下来,没有出现任何一个bug.为处理这种会出现错误的地方,如除数为零的除法,python提供了非常强大的机制————异常处理机制. 1 异常 python使用异常 ...

  5. python 异常处理函数--raise

    Python 异常处理--raise函数用法 在Python中,要想引发异常,最简单的形式就是输入关键字raise,后跟要引发的异常的名称.异常名称标识出具体的类: Python异常处理是那些类的对象 ...

  6. Python新手学习raise用法

    当程序出现错误时,系统会自动引发异常.除此之外,Python也允许程序自行引发异常,自行引发异常使用 raise 语句来完成. 很多时候,系统是否要引发异常,可能需要根据应用的业务需求来决定,如果程序 ...

  7. A Byte of Python 笔记(11)异常:try..except、try..finally

    第13章 异常 当你的程序中出现某些 异常的 状况的时候,异常就发生了. 错误 假如我们把 print 误拼为 Print,注意大写,这样 Python 会 引发 一个语法错误. 有一个SyntaxE ...

  8. python第三十七天--异常--socket

    异常处理 #!usr/bin/env python #-*-coding:utf-8-*- # Author calmyan list_l=['g','h'] data={'} try: #list_ ...

  9. python中异常处理--raise的使用

    https://www.cnblogs.com/zhangyin6985/p/7229553.html 当程序出现错误,python会自动引发异常,也可以通过raise显示地引发异常.一旦执行了rai ...

随机推荐

  1. 实操笔记:为 NSQ 配置监控服务的心路历程

    在 Go 语言实现的实时消息队列中, NSQ 的热度可以排第一. NSQ 这款消息中间件简单易用,其设计目标是为在分布式环境下运行,为去中心化服务提供一个强大的基础架构.它具有分布式.去中心化的拓扑结 ...

  2. 微信小程序在ios系统不兼容new Date('yyyy-mm-dd')

    微信小程序中使用new Date('2021-04-01 10:11:20')来转换时间在苹果手机不生效 兼容写法为new Date('2021/04/01 10:11:20')

  3. 201871030139-于泽浩 实验三 结对项目—《D{0-1}KP 实例数据集算法实验平台》项目报告

    201871030139-于泽浩 实验三 结对项目-<D{0-1}KP 实例数据集算法实验平台>项目报告 项目 内容 课程班级博客链接 2018级卓越班 这个作业要求链接 软件工程结对项目 ...

  4. 构建编译TVM方法

    构建编译TVM方法 本文提供如何在各种系统上构建和安装TVM包的说明.它包括两个步骤: 1.     首先从C代码构建共享库( libtvm.so for linux, libtvm.dylib fo ...

  5. CVPR2019论文看点:自学习Anchor原理

    CVPR2019论文看点:自学习Anchor原理 原论文链接:https://arxiv.org/pdf/1901.03278.pdf CVPR2019的一篇对anchor进行优化的论文,主要将原来需 ...

  6. 图像分类:CVPR2020论文解读

    图像分类:CVPR2020论文解读 Towards Robust Image Classification Using Sequential Attention Models 论文链接:https:// ...

  7. 3D-LaneNet:端到端三维多车道检测ICCV2019

    3D-LaneNet:端到端三维多车道检测ICCV2019 3D-LaneNet: End-to-End 3D Multiple Lane Detection 论文链接: http://openacc ...

  8. 如何在TVM上集成Codegen(上)

    如何在TVM上集成Codegen(上) 许多常用的深度学习内核,或者提供DNNL或TensorRT等框架和图形引擎,让用户以某种方式描述他们的模型,从而获得高性能.此外,新兴的深度学习加速器也有自己的 ...

  9. 『言善信』Fiddler工具 — 10、Fiddler自动响应器(AutoResponder)的应用

    目录 1.图片重定向 2.URL重定向 3.本地调试js文件 4.模拟Mock接口测试 5.综合练习 6.总结 介绍几个Fiddler自动响应器(AutoResponder)应用场景: 场景一:生产环 ...

  10. 【C++】Vector判断元素是否存在,去重,求交集,求并集

    1 #include <iostream> 2 #include <vector> 3 #include <algorithm> //sort函数.交并补函数 4 ...