day21 03 异常处理
2019-05-08 07:30:41来源:博客园 阅读 ()
day21 03 异常处理
1.什么是异常
异常:程序运行时发生错误的信号
错误:语法错误(一般是不能处理的异常)
逻辑错误(可处理的异常)
特点:程序一旦发生错误,就从错误的位置停下来,不再继续执行后面的内容
2.怎么处理异常呢?
比如下面类型代码的异常:
ret=int(input('number >>>')) print(ret*'*')
如果执行后用户输入的不是数据就会报错:
number >>>a Traceback (most recent call last): File "<encoding error>", line 1, in <module> ValueError: invalid literal for int() with base 10: 'a'
可以看到这个错误类型是:ValueError
处理的方法:
try:#异常处理语句 ret=int(input('number >>>'))#把认为有异常错误需要处理的内容放在try.....except 错误类型的机制里面 print(ret*'*') except ValueError:#捕获错误的类型 异常处理语句,只能处理对应的错误
print('您输入的内容错误,请输入一个数字')
当再次输入错误的内容时,它不会标红报错,而是给你提示,就显得比较友好:
number >>>a
您输入的内容错误,请输入一个数字
使用try和except就能处理异常:
try是我们要处理的代码,从前面开始执行,如果有多个错误,遇到第一个错误时就停止了,后面的错误就不会处理了
except后面跟一个错误类型,当代码发生错误且错误类型符合的时候,就会执行except中的代码
except是支持多分支
有没有一个能处理所有错误的类型万能机制:Exception:
只告诉了在哪里错了,但是你不知道在哪里出错了,比较笼统
所以有了这个万能处理机制,仍需要把能预测到的问题单独处理
单独处理的所有内容都应该写在万能异常之前
try: print('111') 1/0 [][3] int('a') {}['key'] print('222') ret=int(input('number >>>')) print(ret*'*') except Exception: print('你错了,老铁') except ValueError: print('您输入的内容错误,请输入一个数字') #如果将这个分支放到万能异常的后面,如果有错误,就会先找到万能异常机制,就不会走下面分支了, # 也就不会具体提醒了,即这个分支也就失效了
111
你错了,老铁
如果将分支机制放在万能机制的前面,当try里面真的有分支对应的错误类型的时候就会具体给出提示
else:没有异常执行else里面的代码
try: ret=int(input('number >>>')) print(ret*'*') except ValueError: print('您输入的内容错误,请输入一个数字') except KeyError: print('请输入正确的格式') except Exception: print('你错了,老铁') else: print('没有异常的时候执行else里面的代码')
假如输入一个正确的:
number >>>5
*****
没有异常的时候执行else里面的代码
finally:不管代码是否异常,都会执行
try: ret=int(input('number >>>')) print(ret*'*') except ValueError: print('您输入的内容错误,请输入一个数字') except KeyError: print('请输入正确的格式') except Exception: print('你错了,老铁') else: print('没有异常的时候执行try里面的代码') finally: print('====')
假如输入一个正确的:
number >>>10
**********
没有异常的时候执行try里面的代码
====
输入一个错误的:
number >>>a
您输入的内容错误,请输入一个数字
==== #输入的a不符合还是会执行
原文链接:https://www.cnblogs.com/wxm422562/p/10810080.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
下一篇:day02
- PYTHON异常处理 2019-07-24
- 图像处理库 Pillow与PIL 2019-07-24
- python学习-37 其他的文件处理方法 2019-07-24
- Python-09-文件处理 2019-07-24
- python学习-36 文件处理b模式 2019-07-24
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash