python怎么自定义捕获错误


Posted in Python onJune 29, 2020

异常捕捉:

try: 
  XXXXX1
  raise Exception(“xxxxx2”) 
except (Exception1,Exception2,……): 
  xxxx3
else:
  xxxxx4
finally:
  xxxxxxx5

1.raise 语句可以自定义报错信息,如上。

2. raise后的语句是不会被执行了,因为已经抛出异常,控制流将会跳到异常捕捉模块。

3. except 语句可以一个except后带多个异常,也可以用多个语句捕捉多个异常,分别做不同处理。

4. except语句捕捉的异常如果没有发生,那么except里的语句块是不被执行的。而是执行else里的语句

5. 在上面语句中try/except/else/finally所出现的顺序必须是try?>except X?>except?>else?>finally,即所有的except必须在else和finally之前,else(如果有的话)必须在finally之前,而except X必须在except之前。否则会出现语法错误。

6.else和finally都是可选的.

7.在上面的完整语句中,else语句的存在必须以except X或者except语句为前提,如果在没有except语句的try block中使用else语句会引发语法错误。

异常参数输出:

try:
  testRaise()
except PreconditionsException as e: #python3的写法,必须用as
  print (e)

自定义异常,只需自定义异常类继承父类Exception。在自定义异常类中,重写父类init方法。

class DatabaseException(Exception):
  def __init__(self,err='数据库错误'):
    Exception.__init__(self,err)
class PreconditionsException(DatabaseException):
  def __init__(self,err='PreconditionsErr'):
    DatabaseException.__init__(self,err)
def testRaise():
  raise PreconditionsException()
try:
  testRaise()
except PreconditionsException as e:
  print (e)

注意:PreconditonsException又是DatabaseException的子类。

所以如果,raise PreconditionException的话,用两个异常类都可以捕捉。

但是, 如果是raise DatabaseException, 用PreconditonsException是捕捉不到的。

实例补充:

python自定义异常捕获异常处理异常

def set_inf(name,age):
  if not 0 < age < 120:
    raise ValueError('超出范围')
  else:
    print('%s is %s years old' % (name,age))
def set_inf2(name,age):
  assert 0 < age < 120,'超出范围'
  print('%s is %s years old' % (name,age))
if __name__ == '__main__':
  try:
   set_inf('bob',200)
  except ValueError as e:
    print('无效值:',e)
  set_inf2('bob',200)

到此这篇关于python怎么自定义捕获错误的文章就介绍到这了,更多相关python自定义捕获错误的方法内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python使用wmi模块获取windows下的系统信息 监控系统
Oct 27 Python
python 3.5下xadmin的使用及修复源码bug
May 10 Python
python timestamp和datetime之间转换详解
Dec 11 Python
在python win系统下 打开TXT文件的实例
Apr 29 Python
python3实现基于用户的协同过滤
May 31 Python
Python基础学习之时间转换函数用法详解
Jun 18 Python
Python图像处理模块ndimage用法实例分析
Sep 05 Python
python模块导入的方法
Oct 24 Python
Python栈的实现方法示例【列表、单链表】
Feb 22 Python
Python打印特殊符号及对应编码解析
May 07 Python
Python request post上传文件常见要点
Nov 20 Python
史上最详细的Python打包成exe文件教程
Jan 17 Python
python打开文件的方式有哪些
Jun 29 #Python
解决tensorflow/keras时出现数组维度不匹配问题
Jun 29 #Python
python中如何写类
Jun 29 #Python
基于Python的自媒体小助手---登录页面的实现代码
Jun 29 #Python
Python unittest基本使用方法代码实例
Jun 29 #Python
解决keras使用cov1D函数的输入问题
Jun 29 #Python
快速了解Python开发环境Spyder
Jun 29 #Python
You might like
模板引擎Smarty深入浅出介绍
2006/12/06 PHP
php生成excel列序号代码实例
2013/12/24 PHP
php将字符串随机分割成不同长度数组的方法
2015/06/01 PHP
详解WordPress中过滤链接与过滤SQL语句的方法
2015/12/18 PHP
PHP数学运算函数大汇总(经典值得收藏)
2016/04/01 PHP
Thinkphp批量更新数据的方法汇总
2016/06/29 PHP
js 目录列举函数
2008/11/06 Javascript
jquery 表格分页等操作实现代码(pagedown,pageup)
2010/04/11 Javascript
javascript复制对象使用说明
2011/06/28 Javascript
jCallout 轻松实现气泡提示功能
2013/09/22 Javascript
createTextRange()的使用示例含文本框选中部分文字内容
2014/02/24 Javascript
Jquery 垂直多级手风琴菜单附源码下载
2015/11/17 Javascript
Jquery实现纵向横向菜单
2016/01/24 Javascript
jquery,js简单实现类似Angular.js双向绑定
2017/01/13 Javascript
js实现手机拍照上传功能
2017/01/17 Javascript
解决layui中table异步数据请求不支持自定义返回数据格式的问题
2018/08/19 Javascript
浅谈angular2子组件的事件传递(任意组件事件传递)
2018/09/30 Javascript
bootstrap table列和表头对不齐的解决方法
2019/07/19 Javascript
微信小程序停止其他视频播放当前视频的实例代码
2019/12/25 Javascript
JavaScript Window浏览器对象模型原理解析
2020/05/30 Javascript
JS操作JSON常用方法(10w阅读)
2020/12/06 Javascript
使用graphics.py实现2048小游戏
2015/03/10 Python
Python的多态性实例分析
2015/07/07 Python
python中偏函数partial用法实例分析
2015/07/08 Python
tensorflow: variable的值与variable.read_value()的值区别详解
2018/07/30 Python
python实现本地图片转存并重命名的示例代码
2018/10/27 Python
Python3.x+迅雷x 自动下载高分电影的实现方法
2020/01/12 Python
基于python实现matlab filter函数过程详解
2020/06/08 Python
使用matplotlib的pyplot模块绘图的实现示例
2020/07/12 Python
Kipling意大利官网:世界著名的时尚休闲包袋品牌
2019/06/05 全球购物
双立人加拿大官网:Zwilling加拿大
2020/08/10 全球购物
质量承诺书格式
2014/05/20 职场文书
小学校园广播稿(3篇)
2014/09/19 职场文书
幼儿园小班班务总结
2015/08/03 职场文书
党员心得体会范文2016
2016/01/23 职场文书
使用jpa之动态插入与修改(重写save)
2021/11/23 Java/Android