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
python自定义异常,使用raise引发异常的更多相关文章
- Python——raise引发异常
程序出现错误,会自动引发异常,Python也允许使用raise语句自行引发异常. 一.使用raise引发异常 单独一个raise引发异常,默认引发RuntimeError异常,例: try: prin ...
- python——异常except语句用法与引发异常
except: #捕获所有异常 except: <异常名>: #捕获指定异常 except:<异常名1,异常名2):捕获异常1或者异常2 except:<异常名>,< ...
- devi into python 笔记(五)异常 文件操作 sys os glob模块简单实用
异常: Java异常: try catch块处理异常,throw引发异常. Python异常: try except块处理异常,raise引发异常. 异常如果不主动处理,则会交给Python中的缺省处 ...
- python学习笔记(七)、异常
在实际开发中,往往不会出现一个系统编写下来,没有出现任何一个bug.为处理这种会出现错误的地方,如除数为零的除法,python提供了非常强大的机制————异常处理机制. 1 异常 python使用异常 ...
- python 异常处理函数--raise
Python 异常处理--raise函数用法 在Python中,要想引发异常,最简单的形式就是输入关键字raise,后跟要引发的异常的名称.异常名称标识出具体的类: Python异常处理是那些类的对象 ...
- Python新手学习raise用法
当程序出现错误时,系统会自动引发异常.除此之外,Python也允许程序自行引发异常,自行引发异常使用 raise 语句来完成. 很多时候,系统是否要引发异常,可能需要根据应用的业务需求来决定,如果程序 ...
- A Byte of Python 笔记(11)异常:try..except、try..finally
第13章 异常 当你的程序中出现某些 异常的 状况的时候,异常就发生了. 错误 假如我们把 print 误拼为 Print,注意大写,这样 Python 会 引发 一个语法错误. 有一个SyntaxE ...
- python第三十七天--异常--socket
异常处理 #!usr/bin/env python #-*-coding:utf-8-*- # Author calmyan list_l=['g','h'] data={'} try: #list_ ...
- python中异常处理--raise的使用
https://www.cnblogs.com/zhangyin6985/p/7229553.html 当程序出现错误,python会自动引发异常,也可以通过raise显示地引发异常.一旦执行了rai ...
随机推荐
- Canal--服务端和客户端搭建
服务端 源码编译 git clone https://github.com/alibaba/canal.git 用IDEA打开克隆的项目 等待maven下载完依赖后开始编译过程 依赖下载完成后,打开m ...
- IDEA 快速上手指南(全配置)(Day_23)
Idea快速入门指南 1.安装 1.1.安装 我们使用的是2017.3.4版本: 双击打开, 选择一个目录,最好不要中文和空格: 然后选择桌面快捷方式,请选择64位: 然后选择安装: 开始安装: 然后 ...
- 并发王者课-青铜7:顺藤摸瓜-如何从synchronized中的锁认识Monitor
在前面的文章中,我们已经体验过synchronized的用法,并对锁的概念和原理做了简单的介绍.然而,你可能已经察觉到,有一个概念似乎总是和synchronized.锁这两个概念如影相随,很多人也比较 ...
- 拖动登录框 HTML+CSS+js
先上效果 代码 <!DOCTYPE html> <html lang="en"> <head> <meta charset="U ...
- Linux应用程序设计:用一种讨巧方式,来获取线程栈的使用信息
面对的问题 对于线程的栈空间,相信各位小伙伴都不陌生.它有下面的这几项特性: > 1. 由操作系统分配固定的空间; > > 2. 使用一个栈寄存器来保存实时位置; > > ...
- Nginx 配置实例-配置高可用
Nginx 配置实例-配置高可用 1. 实现效果 2. 两台机器 nginx 的安装 2.1 192.168.25.120 中 nginx 的安装 2.1.1 安装 pcre 依赖 2.1.2 安装其 ...
- python 获取时间范围内日期列表
python 获取时间范围内日期列表 import datetime def dateRange(beginDate, endDate): dates = [] dt = datetime.datet ...
- 错误码:events.js:183 throw er; // Unhandled 'error' event ^ Error: listen EADDRINUSE :::8081
错误的产生: 错误的原因: 端口被占用 修改访问端口就可以了 https://blog.csdn.net/qq_25479327/article/details/79824742
- 3D深度估计
3D深度估计 Consistent Video Depth Estimation 论文地址:https://arxiv.org/pdf/2004.15021.pdf 项目网站:https://roxa ...
- BEP 7:CUDA外部内存管理插件(上)
BEP 7:CUDA外部内存管理插件(上) 背景和目标 在CUDA阵列接口使得能够共享不同的Python之间的数据库的访问CUDA设备.但是,每个库都与其它库区别对待.例如: Numba在内部管理内存 ...