博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Day27 python基础--异常处理
阅读量:6534 次
发布时间:2019-06-24

本文共 1696 字,大约阅读时间需要 5 分钟。

一,异常处理:

  Q1:什么是异常?

    在编译阶段没问题,在执行阶段才报错

  Q2:什么是错误?

    实指语法错误:在程序之前就规避掉,不应该留到程序中来进行异常处理

  特点  

  异常出现之后,程序就不继续执行了,即便是放在try语句中的内容,在遇到报错之后也会中断这段语句的执行

 

二,异常处理语法结构

# try/except# try/except/else# try/finally# try/ except / finally# try/ except / else / finally
#单分支l = ['登录','注册']try:    num = int(input('num:'))    print(l[num-1])except IndexError:    print('no')#多分支l = ['登录','注册']try:    num = int(input('num:'))    print(l[num-1])except (IndexError,ValueError):    print('no')l = ['登录','注册']try:    num = int(input('num:'))    print(l[num-1])except ValueError:    print('no')except IndexError:    print('no')#万能异常处理:exceptionl = ['登录','注册']try:    num = int(input('num:'))    print(l[num-1])except Exception:    print('no')

  

  as语法:获取报错信息

#as语法l = ['登录','注册']try:    num = int(input('num:'))    print(l[num-1])except (ValueError):    print('No')except Exception as e:  #list index out of range   获取报错信息    print(e)

 

三,异常处理中的其他机制

#elsetry:    name = '122'except NameError:#ValueError:    print('触发了一个value error')else:    print('执行啦')  #主要目的:汇报这段try内的代码顺利的执行了
#finally 无论如何都要执行#用于收尾工作,打开了一个文件,占用了一个网络资源,打开了一个和数据库的链接,最后执行finally内的语句,进行关闭,即便是程序崩溃的情况下def func2():    try:        f = open('content')        name   #语法错误    finally:   #报错,程序退出都会执行        f.close()        print('cloed')
#raise NameError:主动触发异常raise NameError("name'name'is not defined")
#自定义异常#一般不用于报错给用户,一般用于报错给开发者class EvaException(BaseException):  #默认继承BaseException    def __init__(self,msg):        super().__init__()        self.msg = msg    def __str__(self):            return self.msgraise EvaException('eva的异常')
#断言 :类似于if语句assert 1==1 #满足条件继续执行下面的代码assert 1==2 #不满足条件,报错

 

转载于:https://www.cnblogs.com/lianyeah/p/9628374.html

你可能感兴趣的文章
LocalAlloc,VirtualAlloc,malloc,new的异同
查看>>
回调函数
查看>>
win7 x64 jdk1.7.0_51
查看>>
这些开源项目,你都知道吗?(持续更新中...)[原创]
查看>>
linux中利用iptables+geoip过滤指定IP
查看>>
在myeclipse中写sql语句的细节问题
查看>>
使用ShellExecute打开目标文件所在文件夹并选中目标文件
查看>>
HDU 4614 Vases and Flowers (2013多校2 1004 线段树)
查看>>
Minix中的字符判定ctype.c
查看>>
91平台iOS接入demo
查看>>
五个优秀的硬盘检测工具
查看>>
用js实现table内容从下到上连续滚动
查看>>
基于ffmpeg的流媒体服务器
查看>>
项目积累——Blockingqueue,ConcurrentLinkedQueue,Executors
查看>>
JVM学习笔记(一)------基本结构
查看>>
活动目录之备份与恢复
查看>>
删除 Eclipse 的 configuration 目录
查看>>
MOXA的智能通信产品也大力支持WinCE.net了
查看>>
ActiveX开发知多少?
查看>>
你不得不知道的Visual Studio 2012(3)- 创建Windows应用程序
查看>>