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实现自动登录人人网并访问最近来访者实例
Sep 26 Python
python实现读取命令行参数的方法
May 22 Python
在Python中处理日期和时间的基本知识点整理汇总
May 22 Python
python中for用来遍历range函数的方法
Jun 08 Python
django从请求到响应的过程深入讲解
Aug 01 Python
python 3调用百度OCR API实现剪贴板文字识别
Sep 04 Python
在Python运行时动态查看进程内部信息的方法
Feb 22 Python
python使用matplotlib画柱状图、散点图
Mar 18 Python
Django ORM 常用字段与不常用字段汇总
Aug 09 Python
Python实现中值滤波去噪方式
Dec 18 Python
Python3标准库之threading进程中管理并发操作方法
Mar 30 Python
Python监听键盘和鼠标事件的示例代码
Nov 18 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 开发环境配置(Zend Studio)
2010/04/28 PHP
推荐一款MAC OS X 下php集成开发环境mamp
2014/11/08 PHP
ThinkPHP控制器里javascript代码不能执行的解决方法
2014/11/22 PHP
8个PHP程序员常用的功能汇总
2014/12/18 PHP
windows平台中配置nginx+php环境
2015/12/06 PHP
php将一维数组转换为每3个连续值组成的二维数组
2016/05/06 PHP
PHP载入图像imagecreatefrom_gif_jpeg_png系列函数用法分析
2016/11/14 PHP
php curl 模拟登录并获取数据实例详解
2016/12/22 PHP
php生成条形码的图片的实例详解
2017/09/13 PHP
js 单引号 传递方法
2009/06/22 Javascript
jQuery获取注册信息并提示实现代码
2013/04/21 Javascript
JavaScript获取table中某一列的值的方法
2014/05/06 Javascript
jQuery插件制作之全局函数用法实例
2015/06/01 Javascript
为什么JavaScript没有块级作用域
2016/05/22 Javascript
node网页分段渲染详解
2016/09/05 Javascript
JS实现简单易用的手机端浮动窗口显示效果
2016/09/07 Javascript
webpack+vue中使用别名路径引用静态图片地址
2017/11/20 Javascript
关于Vue源码vm.$watch()内部原理详解
2019/04/26 Javascript
微信小程序数据统计和错误统计的实现方法
2019/06/26 Javascript
JavaScript中reduce()的5个基本用法示例
2020/07/19 Javascript
python实现将pvr格式转换成pvr.ccz的方法
2015/04/28 Python
python编程实现12306的一个小爬虫实例
2017/12/27 Python
python的debug实用工具 pdb详解
2019/07/12 Python
浅析PyTorch中nn.Linear的使用
2019/08/18 Python
python实现截取屏幕保存文件,删除N天前截图的例子
2019/08/27 Python
基于python实现蓝牙通信代码实例
2019/11/19 Python
python多维数组分位数的求取方式
2020/03/03 Python
css3 自定义字体font-face使用介绍
2014/05/14 HTML / CSS
美国手工艺品市场的领导者:Annie’s
2019/04/04 全球购物
Herschel Supply Co.美国:背包、手提袋及配件
2020/11/24 全球购物
寒假实习自荐信
2014/01/26 职场文书
教育英语专业毕业生的求职信
2014/03/13 职场文书
酒店客房服务员岗位职责
2015/04/09 职场文书
哈姆雷特读书笔记
2015/06/29 职场文书
我的中国梦心得体会范文
2016/01/05 职场文书
mongoDB数据库索引快速入门指南
2022/03/23 MongoDB