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基础教程
Feb 05 Python
Python模拟用户登录验证
Sep 11 Python
你真的了解Python的random模块吗?
Dec 12 Python
用Python删除本地目录下某一时间点之前创建的所有文件的实例
Dec 14 Python
python批量设置多个Excel文件页眉页脚的脚本
Mar 14 Python
Python zip()函数用法实例分析
Mar 17 Python
Python实现修改文件内容的方法分析
Mar 25 Python
详解分布式任务队列Celery使用说明
Nov 29 Python
python遍历小写英文字母的方法
Jan 02 Python
详解python的四种内置数据结构
Mar 19 Python
Python3 main函数使用sys.argv传入多个参数的实现
Dec 25 Python
ubuntu安装jupyter并设置远程访问的实现
Mar 31 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
php中通过正则表达式下载内容中的远程图片的函数代码
2012/01/10 PHP
PHP删除目录及目录下所有文件的方法详解
2013/06/06 PHP
深入理解curl类,可用于模拟get,post和curl下载
2013/06/08 PHP
利用phpexcel把excel导入数据库和数据库导出excel实现
2014/01/09 PHP
在 IE 中调用 javascript 打开 Excel 表
2006/12/21 Javascript
extjs ColumnChart设置不同的颜色实现代码
2013/05/17 Javascript
javascript中call apply 的应用场景
2015/04/16 Javascript
jQuery实现简单的列表式导航菜单效果代码
2015/08/31 Javascript
js中使用使用原型(prototype)定义方法的好处详解
2016/07/04 Javascript
JS实现微信弹出搜索框 多条件查询功能
2016/12/13 Javascript
jQuery插件form-validation-engine正则表达式操作示例
2017/02/09 Javascript
javascript设计模式之单体模式学习笔记
2017/02/15 Javascript
详解vue前后台数据交互vue-resource文档
2017/07/19 Javascript
基于JS实现html中placeholder属性提示文字效果示例
2018/04/19 Javascript
JS实现快递单打印功能【推荐】
2018/06/21 Javascript
一个Vue页面的内存泄露分析详解
2018/06/25 Javascript
Moment.js实现多个同时倒计时
2019/08/26 Javascript
Vue实现鼠标经过文字显示悬浮框效果的示例代码
2020/10/14 Javascript
JavaScript实现表单验证功能
2020/12/09 Javascript
Windows下Python2与Python3两个版本共存的方法详解
2017/02/12 Python
python logging日志模块的详解
2017/10/29 Python
Python自动化运维之Ansible定义主机与组规则操作详解
2019/06/13 Python
django之对FileField字段的upload_to的设定方法
2019/07/28 Python
对Django中内置的User模型实例详解
2019/08/16 Python
Python 取numpy数组的某几行某几列方法
2019/10/24 Python
为什么黑客都用python(123个黑客必备的Python工具)
2020/01/31 Python
HTML5 video播放器全屏(fullScreen)方法实例
2015/04/24 HTML / CSS
H5调用相机拍照并压缩图片的实例代码
2017/07/20 HTML / CSS
法国时尚品牌乐都特瑞士站:La Redoute瑞士
2016/09/05 全球购物
大学生入党思想汇报
2014/01/14 职场文书
会计出纳员的自我评价
2014/01/15 职场文书
《月球之谜》教学反思
2014/04/10 职场文书
只需要12页,掌握撰写一流商业计划书的技巧
2019/05/07 职场文书
如何制定一份可行的计划!
2019/06/21 职场文书
pandas提升计算效率的一些方法汇总
2021/05/30 Python
Python中Numpy和Matplotlib的基本使用指南
2021/11/02 Python