09-Python异常
一、简介
在实际的工作过程中,我们会遇到各种问题,比如文件不存在,代码运行不符合某些特定逻辑等,程序在运行时,遇到这些问题便会发生异常。英文是Exception。
a = float(input('请输入一个数字:'))
b = float(input('请输入另一个数字:'))
c = a/b
print(c)

在上面的这个程序中,要求我们输入数字,但当我们输入了字符时,不符合代码运行规则,因此出现错误。
二、异常处理
使用try…except来处理异常。我们把语句放在try模块中,把错误处理语句放在except 中。
也可以使用多个except,如try…except…except…
try:
a = float(input('请输入一个数字:'))
b = float(input('请输入另一个数字:'))
c = a / b
print(c)
except ValueError:
print('输入必须为数字')
except ZeroDivisionError:
print('除数不能为0')


使用异常后,输入错误时则执行相应的异常部分的程序块
三、try….finally结构
在程序执行的过程中,有的程序块无论是否发生异常,我们都希望它能够执行,这时就引入了finally结构。在finally结构后面的程序便是能够执行的程序。通常用来释放try中申请的资源。
try:
w = open('C:/love.txt','r') #打开文件love.txt,模式为r,表示不存在则报错
text = w.readline() #读取一行的数据
print(text)
except : #发生异常执行
print('文件未找到')
finally:
print('执行完毕')
try: #文件不存在,关闭会产生异常
w.close()
except BaseException as a: #打印异常产生的原因
print(a)
执行结果:

四、with 语句
Finally块由于是否发生异常都会执行,所以通常用于释放资源的代码,with语句也可以轻松的实现这种功能。
with上下文管理可以自动管理资源,在with模块中,无论是否发生异常,总能保证资源的释放。
with open(‘F:/sum.txt’, “r”) as f:
content = f.readline()
print(content)
print(‘执行完毕,恢复进入代码之前的状态’)
该程序表示打开F盘的sum.txt文件,读写模式为只读(r)模式。读完之后程序会自动关闭。
执行结果:
按时符文工房
执行完毕,恢复进入代码之前的状态

五、traceback模块
捕获并打印异常
import traceback
try:
print('开始')
a = 10/0
except:
traceback.print_exc()
运行结果:

import traceback
try:
print('开始')
a = 10/0
except:
with open('F:/sum.txt', 'a') as f:
traceback.print_exc(file=f)
该程序表示如果发生异常时,打开F盘的sum文件,读写模式为a(只能写,表示文件不存在则创建该文件)。把异常写入文件中。
输出结果:

Sum文件中:

09-Python异常的更多相关文章
- python 异常
引用一段来自菜鸟教程的文章:http://www.runoob.com/python/python-exceptions.html Python 异常处理 python提供了两个非常重要的功能来处理p ...
- #21 Python异常
前言 运行程序时经常遇到各种错误,例如:ImportError(导入模块错误).IndexError(索引错误).NameError(变量错误).SyntaxError(语法错误).Indentati ...
- Python异常和异常处理
Python异常和异常处理2017年12月20日 22:17:08 Megustas_JJC 阅读数:114 标签: python 异常处理 更多 个人分类: Python 版权声明:本文为博主原创文 ...
- python——异常except语句用法与引发异常
except: #捕获所有异常 except: <异常名>: #捕获指定异常 except:<异常名1,异常名2):捕获异常1或者异常2 except:<异常名>,< ...
- 笔记-python异常信息输出
笔记-python异常信息输出 1. 异常信息输出 python异常捕获使用try-except-else-finally语句: 在except 语句中可以使用except as e,然后通 ...
- python异常捕获异常堆栈输出
python异常捕获异常堆栈输出 学习了:https://blog.csdn.net/chris_grass/article/details/77927902 import traceback def ...
- 小学生绞尽脑汁也学不会的python(异常,约束,MD5加密,日志处理)
小学生绞尽脑汁也学不会的python(异常,约束,MD5加密,日志处理) 异常处理(处理) 1.产生异常.raise 异常类(),抛出异常2. 处理异常: try: xxxxx # 尝试执行的代码. ...
- python 异常之进阶操作
1.文件分析 下面来做一些文件分析操作,分析整本书的信息. 知识点: string.split():将字符串分解为列表. open(filename,‘rb’)或者open(filename,enco ...
- Python异常类型及包含关系
Python异常类型及包含关系,设计异常捕获时参考: BaseException +-- SystemExit +-- KeyboardInterrupt +-- GeneratorExit +-- ...
- 如何处理python异常
1.python异常有那些? window的机器如果安装了python,则直接可以在idle中查看,打开idle,按F1即可打开帮助文档,按如下路径即可查看,也可以去python官网查看这里不说明了百 ...
随机推荐
- Jlink设置正确,但下载程序失败
[图中reset and run]勾选后即每次·下载程序后会自动复位,不需要再在硬件上进行复位 各参数设置正确 但依然下载失败. 原因是需要重新再编译一次,因为上次设置错误,编译后目标未创建! 重新编 ...
- Arduino + RFID 读取 IC 卡 Arduino uno中获得RFID的UID 并通过串口转发RFID卡号
RFID简介:射频识别即RFID(Radio Frequency IDentification)技术,又称无线射频识别,是一种通信技术,可通过无线电讯号识别特定目标并读写相关数据,而无需识别系统与特定 ...
- Spring Boot入门系列(十八)整合mybatis,使用注解的方式实现增删改查
之前介绍了Spring Boot 整合mybatis 使用xml配置的方式实现增删改查,还介绍了自定义mapper 实现复杂多表关联查询.虽然目前 mybatis 使用xml 配置的方式 已经极大减轻 ...
- 使用ssh连接数据库时出现Permission denied, please try again.解决方案
安装ssh(如果已经安装则会覆盖)sudo apt-get install openssh-server找到/etc/ssh/sshd_config这个文件 将permitrootlogin的值设置为 ...
- Spring Boot 2 实战:利用Redis的Geo功能实现查找附近的位置
1. 前言 老板突然要上线一个需求,获取当前位置方圆一公里的业务代理点.明天上线!当接到这个需求的时候我差点吐血,这时间也太紧张了.赶紧去查相关的技术选型.经过一番折腾,终于在晚上十点完成了这个需求. ...
- 关于HTTP 请求方式: GET和POST的比较的本质
什么是HTTP? 超文本传输协议(HyperText Transfer Protocol -- HTTP)是一个设计来使客户端和服务器顺利进行通讯的协议. HTTP在客户端和服务器之间以request ...
- 35 _ 队列1 _ 什么是队列.swf
队列是一种可以实现一个先进先出的存储结构 什么是队列? 队列(Queue)也是一种运算受限的线性表.它只允许在表的一端进行插入,而在另一端进行删除.允许删除的一端称为队头(front),允许插入的一端 ...
- java后台框架面试必须会的东西
- 前后端分层架构MVC&MVVM
早期 特点 页面由 JSP.PHP 等工程师在服务端生成 JSP 里揉杂大量业务代码 浏览器负责展现,服务端给什么就展现什么,展现的控制在 Web Server 层 优点 简单明快,本地起一个 Tom ...
- ArcServer服务通过python备份,到另一台机器还原服务
通过python可以快速把服务器上所有的服务都备份下来(只能备份服务,无法备份缓存文件),然后可以把备份文件考到需要新装的服务器上进行还原.还原时所有的Server缓存.输出等文件夹地址都是按源备份地 ...