热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

python3异常、自定义异常

异常类型:try:语句体except异常类型:处理语句列:try:n10exceptZeroDivisionError:

异常类型:

try:

   语句体
except 异常类型:
   处理语句

列:

try:
    n=1/0
except ZeroDivisionError:
    print('出现异常')
》》》出现异常


另一种方法:
try:
   语句体
except (异常类型1,异常类型2):
   处理语句

列:

try:
    n=1/0
    s=int('hello world!')
except (ZeroDivisionError,ValueError):
    print('出现异常')
》》》出现异常

try里面有两句语句,可以注销其中的任意一条,它都会报错,只要在try里面捕获到异常,它会直接跳到except,对比异常类型后直接执行print



所有异常:
try:
   语句体
except baseException:
   处理语句
列:
try:
    n=1/0
except BaseException:
    print('出现异常')

》》》出现异常

BaseException是所有异常的父类,如果你只想知道代码有没有出错,但又不想知道报的什么类型的错误,就可以用这种

try:
   语句体
except 异常类型:
   处理语句
else

   没有异常执行

列:

try:
    n=1/2
except BaseException:
    print('出现异常')
else:
    print('没有异常类型')
》》》没有异常类型

try里面没有异常时会执行else语句块


try:
except:
捕获所有异常

列:

try:
    n=1/0
except:
    print('出现异常')
》》》出现异常

如果except后面不写异常的类型,那么它会默认捕获所有异常,这和上面那个BaseException大同小异


try:
excep 异常类型:

finally:最终执行的内容要写在finally中:

列:

try:
    n=1/0
except:
    print('出现异常')
finally:
    print('无论有无异常,都会执行')
》》》出现异常
》》》无论有无异常,都会执行

一般finally里面放关闭文件的指令


异常的调用:

列:

def testError():
    n=1/0
try:
    testError()
except:
    print('除数不能为0')
》》》除数不能为0
还有另一个列子:
 
 
def test():
    lst = [1, 2, 3, 4, 5]
    n=lst[len(lst)]
    print(n)
def test2():
    try:
        test()
    except IndexError as t:
        print('下标超出')
        print(t)
test2()
》》》下标超出
》》》list index out of range
这里的as t 的意识是将异常重命名为t,然后再将异常输出



接下来就是最重要的一点了,那就是自定义异常,如果你不想用系统给出的类型,而是想自己定义

自定义异常类:一般继承Exception,也可继承baseException

class TanError(Exception):
    def __init__(self,age):
        self.age=age
    def __str__(self):
        return self.age

def ag():
    age=int(input('输入年龄:'))
    if age<=0 or age>100:
        raise TanError('年龄只能在0到100岁之间')
//raise 会抛出一个异常
try:
     ag()
except TanError as tan:
    print(tan)
》》》输入年龄:-2
》》》年龄只能在0到100岁之间



推荐阅读
  • 浅谈Python3中打开文件的方式(With open)
    浅谈Python3中打开文件的方式(With open)-目录0.背景知识1.常规方式:读取文件-----open()2.推荐方式:读取文件-----WithOpen1).读取方式 ... [详细]
  • Python3怎么获取文件属性
    这篇文章给大家分享的是有关Python3怎么获取文件属性的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。os.stat(path ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • 本文介绍了Python异常的捕获、传递与抛出操作,并提供了相关的操作示例。通过异常的捕获和传递,可以有效处理程序中的错误情况。同时,还介绍了如何主动抛出异常。通过本文的学习,读者可以掌握Python中异常处理的基本方法和技巧。 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • 闭包一直是Java社区中争论不断的话题,很多语言都支持闭包这个语言特性,闭包定义了一个依赖于外部环境的自由变量的函数,这个函数能够访问外部环境的变量。本文以JavaScript的一个闭包为例,介绍了闭包的定义和特性。 ... [详细]
  • 本文介绍了Swing组件的用法,重点讲解了图标接口的定义和创建方法。图标接口用来将图标与各种组件相关联,可以是简单的绘画或使用磁盘上的GIF格式图像。文章详细介绍了图标接口的属性和绘制方法,并给出了一个菱形图标的实现示例。该示例可以配置图标的尺寸、颜色和填充状态。 ... [详细]
  • Android系统源码分析Zygote和SystemServer启动过程详解
    本文详细解析了Android系统源码中Zygote和SystemServer的启动过程。首先介绍了系统framework层启动的内容,帮助理解四大组件的启动和管理过程。接着介绍了AMS、PMS等系统服务的作用和调用方式。然后详细分析了Zygote的启动过程,解释了Zygote在Android启动过程中的决定作用。最后通过时序图展示了整个过程。 ... [详细]
  • 一json文件JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式。它基于ECMAScript的一个子集。JSON采用完全独立于语言的文本格式,但是也使 ... [详细]
  • 写在前面最近在学习爬虫,在熟悉了Python语言和BeautifulSoup4后打算下个爬虫框架试试。没想到啊,这坑太深了。。。看了看相关介绍后选择了Scrapy框架,然后兴高采烈的 ... [详细]
  • Python Flask学习之安装SQL,python3,Pycharm(网上下载安装即可)
    1,下载时更改pypi源。可以额外安装虚拟化环境:pipinstall-ihttp:pypi.douban.comsimple--trusted-hos ... [详细]
  • 环境准备—之—linux下安装python3和pip3
    转自上海悠悠https:www.cnblogs.comyoyoketangp10195102.html前言centos7自带有python,但是却是python2版本的 ... [详细]
  • python教程分享python人物视频背景替换实现虚拟空间穿梭
    引言近期网上这位卖蜂蜜的小伙鬼畜挺火的,大家质疑背景造假,这里我就带着大家实现“背景造假”(ps:原视频小伙是在真实场景拍摄的)准备工作在实现该功能之前,我 ... [详细]
  • 微软头条实习生分享深度学习自学指南
    本文介绍了一位微软头条实习生自学深度学习的经验分享,包括学习资源推荐、重要基础知识的学习要点等。作者强调了学好Python和数学基础的重要性,并提供了一些建议。 ... [详细]
  • JavaSE笔试题-接口、抽象类、多态等问题解答
    本文解答了JavaSE笔试题中关于接口、抽象类、多态等问题。包括Math类的取整数方法、接口是否可继承、抽象类是否可实现接口、抽象类是否可继承具体类、抽象类中是否可以有静态main方法等问题。同时介绍了面向对象的特征,以及Java中实现多态的机制。 ... [详细]
author-avatar
koglum
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有