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官网查看这里不说明了百 ...
随机推荐
- dB是乘以10还是乘以20
dB即分贝(decibel),经常用来表示信号的大小.然而,今天在学习计算机网络的时候发现分贝的公式有两种:10lg(X) 或者 20lg(X) 很迷惑所以查找资料.得到的结果是dB在表示功率的时候用 ...
- Android学习笔记尺寸资源
尺寸资源语法 dp:设备独立资源像素 会根据设备匹配大小 一般用于设置边距和组件大小 sp : 可伸缩像素 根据用户手机字体大小首选项进行缩放 使用尺寸资源 定义尺寸资源 dimens <?xm ...
- Laravel:No application encryption key has been specified.
其实吧,这个就是你没有生成密钥 你首先去看看,如果是刚刚下载的lavavel应该会有一个.env.example文件在根目录下,然后修改这个文件名,改成.env 然后用命令行去执行php artisa ...
- docker已运行容器里的时区修改
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 或者 cp /usr/share/zoneinfo/Asia/Shanghai ...
- 线程基础8-quene讲解
PriorityBlockingQueue是一个基于优先级堆的无界的并发安全的优先级队列(FIFO),队列的元素按照其自然顺序进行排序,或者根据构造队列时提供的 Comparator 进行排序,具体取 ...
- Java 将PDF/XPS转为Word/html /SVG/PS/PCL/PNG、PDF和XPS互转(基于Spire.Cloud.SDK for Java)
Spire.Cloud.SDK for Java提供了接口PdfConvertApi通过convert()方法将PDF文档以及XPS文档转为指定文档格式,如转PDF为Word(支持Docx.Doc). ...
- junit搭建自动化测试框架(一)
这里主要使用Junit搭建一个分层的自动化测试框架.这就是一个有业务逻辑的单元测试的思想.灵活性很大,对测试人员的代码能力要求较高. 以登录QQ邮箱为例,数据源使用了集合接口Map.借鉴了MVC的思想 ...
- Python 简明教程 --- 11,Python 元组
微信公众号:码农充电站pro 个人主页:https://codeshellme.github.io 软件工程的目标是控制复杂度,而不是增加复杂性. -- Dr. Pamela Zave 目录 我们在上 ...
- Nginx配置upstream实现负载均衡1
如果Nginx没有仅仅只能代理一台服务器的话,那它也不可能像今天这么火,Nginx可以配置代理多台服务器,当一台服务器宕机之后,仍能保持系统可用.具体配置过程如下: 1. 在http节点下,添加ups ...
- Python3笔记002 - 1.2 搭建python开发环境
第1章 认识python 1.2 搭建python开发环境 1.2.1 python开发环境概述 python开发环境常见的操作系统: Windows Mac OS Linux 1.2.2 安装pyt ...