python自定义异常和主动抛出异常(raise)

python自定义异常和主动抛出异常(raise)前言有时候python自带异常不够用,如同java,python也可以自定义异常,并且可以手动抛出。注意,自定义异常只能由自己抛出。python解释器是不知道用户自定义异常是什么鬼的。raise语句主动抛出异常。格式:主动抛出异常终止程序raise异常名称(‘异常描述’)raiseRuntimeError(‘testError’)主动抛出这个异常,并加以解释。自定义异常pytho


Jetbrains全系列IDE稳定放心使用

前言

有时候python自带异常不够用,如同java,python也可以自定义异常,并且可以手动抛出。注意,自定义异常只能由自己抛出。python解释器是不知道用户自定义异常是什么鬼的。

raise语句

主动抛出异常。
格式:
主动抛出异常终止程序
raise 异常名称(‘异常描述’)

raise RuntimeError('testError')

image.png
主动抛出这个异常,并加以解释。

自定义异常

python的异常分为两种.
1、内建异常,就是python自己定义的异常。
2、不够用,用户自定义异常,
首先看看python的异常继承树
image.png
我们可以看到python的异常有个大基类。然后继承的是Exception。所以我们自定义类也必须继承Exception。

#最简单的自定义异常
class FError(Exception):
    pass

抛出异常、用try-except抛出

try:
    raise FError("自定义异常")
except FError as e:
    print(e)

image.png
在这里给一个简单的自定义异常类模版。

class CustomError(Exception):
    def __init__(self,ErrorInfo):
        super().__init__(self) #初始化父类
        self.errorinfo=ErrorInfo
    def __str__(self):
        return self.errorinfo

if __name__ == '__main__':
    try:
        raise CustomError('客户异常')
    except CustomError as e:
        print(e)

image.png

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/180819.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • 免费申请国外免费域名超详细教程

    免费申请国外免费域名超详细教程1.首先申请免费域名网站:https://my.freenom.com/domains.php2.填入域名,这里我们以xcflag为列(尽量选择复杂一点的或者五个字母以上的域名,因为简单的有些域名是需要收费的),点击检查可用性。3.可以看到很多免费的域名(用的谷歌翻译插件,翻译有时候不是很准确,free翻译过来应该是免费而不是自由,之后会写一些关于谷歌插件的笔记,详细讲解)4.我们选择xcflag.tk点击立即获取,稍等一会点击购物车查看绿色按钮5.默认三个月试用,这里下拉框我们选择十二个月

    2022年6月30日
  • sql清空表数据命令

    sql清空表数据命令有三种清空方式:1.delete逐行删除表数据速度比较慢,不适合删除数据量大的表。2.truncate删除表中所有数据并且保留表结构,但是不能撤消还原。3.drop表数据和表结构一起删除,在实践过程中删除大数据量表数据。使用1,2这两种方法需要等待好久才能清空完成。有一个较快的方法是先导出表结构,首先对原先表进行删除,然后再重建。…

    2022年6月13日
  • pycharm关闭自动补全_python opencv 教程

    pycharm关闭自动补全_python opencv 教程我刚下载pycharm,准备学opencv,然后在网上博客上找了许多文章看了,有的说下载后导入修改cv2文件夹里的_init_.py,但是经过测试也不行,个人感觉总是少了啥,然后找了许多文章看了然后也试了,除了安装opencv成功之外就没有了。后来看了许多文章之后看见每个博客写的方法都不一样,这里我就有点顿悟了…我看到cv2文件夹中的_init_.py里面的code已经说清楚啦,我是刚开始不怎么看得懂英文的意思,后来仔细看了才大概明白了一丢丢…请看:importimportlibimport

    2022年8月26日
  • java中.的意思_java中“:”的意思是什么?

    java中.的意思_java中“:”的意思是什么?展开全部代码块是一种常见的代码形式。他用62616964757a686964616fe58685e5aeb931333365653331大括号“{}”将多行代码封装在一起,形成一个独立的代码区,这就构成了代码块。代码块的格式如下:1、普通代码块:是最常见的代码块,在方法里用一对“{}”括起来的数据,就是普通的代码块,2、构造代码块:是在类中直接定义的,用“{}”括起来的代码。每次调用构造方法前执行…

    2022年7月9日
  • Unity3D安装_3D杀号APP

    Unity3D安装_3D杀号APPUnity3D是一个跨平台的游戏开发引擎,它能够帮助开发者快速构建游戏场景,进行游戏开发与发布。它支持将开发好的作品发布到Windows、MacOS、Android、iOS、Linux等多种平台。另外,Unity3D官方版本目前可以运行在Windows和MacOS上,当然还有可以运行在Linux上的非官方版本。

    2022年8月10日
  • gradle下载太慢_苹果6网络慢怎么解决

    gradle下载太慢_苹果6网络慢怎么解决由于网络的原因,有些地方连接下载Gradle没问题,有些地方就不行,所以需要想办法解决先说下载,打开文件gradle-wrapper.properties文件,修改distributionUrl把services.gradle.org改成downloads.gradle-dn.com当然这方法可能有些地方不行,实在不行就上代理吧再说Gradle下载jar包慢,在build.gradle文件的repositories{}内添加上阿里的仓库当然,如果添加了阿里仓库还不行的话只能找其他方

    2022年10月25日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号