python 自定义异常和异常捕捉的方法

 更新时间:2018年10月18日 14:30:11   作者:flyingshuai   我要评论

今天小编就为大家分享一篇python 自定义异常和异常捕捉的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

异常捕捉:

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 自定义异常和异常捕捉的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Python中pip安装非PyPI官网第三方库的方法

    Python中pip安装非PyPI官网第三方库的方法

    这篇文章主要介绍了Python中pip安装非PyPI官网第三方库的方法,pip最新的版本(1.5以上的版本), 出于安全的考 虑,pip不允许安装非PyPI的URL,本文就给出两种解决方法,需要的朋友可以参考下
    2015-06-06
  • Python3中多线程编程的队列运作示例

    Python3中多线程编程的队列运作示例

    这篇文章主要介绍了Python3中多线程编程的队列运作示例,文中用一个简单的例子展示了Python下尝?#36828;?#32447;程时队列的进站出站是如何运作的,需要的朋友可以参考下
    2015-04-04
  • python uuid模块使用实例

    python uuid模块使用实例

    这篇文章主要介绍了python uuid模块使用实例,本文给出简单使用示例,讲解uuid1、uuid3、 uuid4、 uuid5这几个方法,需要的朋友可以参考下
    2015-04-04
  • windows 下python+numpy安装实用教程

    windows 下python+numpy安装实用教程

    这篇文章主要介绍了windows 下python+numpy安装实用教程,具有一定借鉴价值,需要的朋友可以参考下。
    2017-12-12
  • Python中类的创建和实例化操作示例

    Python中类的创建和实例化操作示例

    这篇文章主要介绍了Python中类的创建和实例化操作,涉及Python面向对象程序设计中类的定义、实例化、方法调用等相关操作技巧,需要的朋友可以参考下
    2019-02-02
  • Python实现判断字符串中包含某个字符的判断函数示例

    Python实现判断字符串中包含某个字符的判断函数示例

    这篇文章主要介绍了Python实现判断字符串中包含某个字符的判断函数,涉及Python自定义函数中使用find方法针对字符串的简单判断查找相关操作技巧,需要的朋友可以参考下
    2018-01-01
  • python如何重载模块实例解析

    python如何重载模块实例解析

    这篇文章主要介绍了python如何重载模块实例解析,涉及模块的概念,载入和重载的实例,小编觉?#27809;?#26159;挺不错的,具有一定借鉴价值,需要的朋友可以参考下
    2018-01-01
  • 对Python新手编程过程中如何规避一些常见问题的建议

    对Python新手编程过程中如何规避一些常见问题的建议

    这篇文章中作者对Python新手编程过程中如何规避一些常见问题给出了建议,主要着眼于初学者对于一些常用函数方法在平时的使用习惯中的问题给出建议,需要的朋友可以参考下
    2015-04-04
  • 详解用python实现简单的遗传算法

    详解用python实现简单的遗传算法

    这篇文章主要介绍了详解用python实现简单的遗传算法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-01-01
  • python 把数据 json格式输出的实例代码

    python 把数据 json格式输出的实例代码

    下面小编就为大家带来一篇python 把数据 json格式输出的实例代码。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-10-10

最新评论

辽宁35选7开奖结果
中国体育彩票中奖信息s cba全明星投票 篮球彩票 期香港特码生肖 梦见别人中彩票好不好 快3走势图乐彩 泳坛夺金怎么玩组选12 快乐彩老11选5 北京时时彩pc28走势图 广西快3开奖下载安装 河南七星彩走势图 甘肃快三形态走势势图一定牛 福彩2019101期开奖号码 亚盘上下盘胜平负 香港赛马会总部hk