相关概念

- 错误:程序运行之前的语法错误,如:关键字、缩进不齐、括号不成对。
- 异常:在程序运行过程中出现的问题,如:除数为0、对象属性不存在等。 异常处理 - 说明:异常处理可以理解为特殊的流程控制语句,可以提高代码的健壮性。
- 语法:
try:
print('正常代码')
# 3/0
# print(a)
print('正常结束')
except Exception as e:
# 此处捕获异常,然后做出异常的处理
print('出现了异常', e) print('over')
- 多个异常
'''
try:
print('正常代码')
# print(a)
# 3/0
d = {}
print(d['age'])
except NameError as e:
print('NameError:', e)
except ZeroDivisionError as e:
print('ZeroDivisionError:', e)
except Exception as e:
print('Other:', e)
''' try:
# print(a)
# 3/0
d = {}
print(d['age'])
except (NameError, ZeroDivisionError) as e:
# 将某些异常放在一起进行统一处理
print(e)
except:
print('其他异常') print('OVER')
- 完整结构
try:
print('正常执行')
print(a)
except Exception as e:
# 出现异常时执行
print('出现异常:', e)
else:
# 没有异常时执行
print('正常结束')
finally:
# 无论有无异常都会执行
print('最后执行')
- 抛出异常
try:
print('正常执行')
# 根据业务逻辑需要,手动抛出异常
raise Exception('手动抛出的异常')
print('正常结束')
except Exception as e:
print('异常', e) print('OVER')
- 异常嵌套
print('我要去上班,什么事也阻止不了上班的脚步') try:
print('我准备骑电车去上班')
raise Exception('不知道昨天晚上哪个缺德的家伙把我充电器弄掉了')
print('骑电车提前到达公司')
except Exception as e:
print('异常:', e)
try:
print('我准备做公交上班')
raise Exception('等了20分钟一直没有公交,果断放弃')
print('做公交准时到达')
except Exception as e:
print('异常', e)
print('我准备打车')
print('打车还是快,一会就到公司')
print('热情满满的开始一天的工作')
- 自定义异常类
# 自定义异常类
class MyException(Exception):
def __init__(self, msg):
self.msg = msg def __str__(self):
return self.msg # 异常处理函数
def deal(self):
print('特定的处理方案') try:
print('正常执行')
raise MyException('自定义异常')
except MyException as e:
print(e)
# 处理异常
e.deal()
# 这种异常放在最后
except Exception as e:
print('Exception', e) print('OVER') - 特殊场景
- 当进行文件操作时,无论过程中有误异常,最后一定要关闭文件。
- 使用with语句,来保证文件的关闭,无论中间是否出现异常。
- 示例:
'''
fp = open('00-text.txt', 'r')
content = fp.read(1024)
# ...
# ...
# 最后一定要关闭文件
fp.close()
''' with open('00-text.txt', 'r') as fp:
content = fp.read(1024)
# ...
# ...
# 不需要考虑文件的关闭问题,
# 无论中间有无异常,都会确保文件的关闭

python学习总结----异常处理的更多相关文章

  1. 4月18日 python学习总结 异常处理、网络编程

    一. 异常 1.什么是异常 异常是错误发生的信号,程序一旦出错,如果程序中还没有相应的处理机制 那么该错误就会产生一个异常抛出来,程序的运行也随之终止 2.一个异常分为三部分: 1.异常的追踪信息 2 ...

  2. Python学习之--异常处理

    Python中的Exceptions是所有异常的基类,内置的异常类都放在了exceptions模块中,通过dir()函数可以看到这些内置的类 通过raise 语句触发异常,如 >>> ...

  3. Python学习 :异常处理

    异常处理 什么是异常处理 - python解释器检测到错误,触发异常(也允许程序员自己触发了异常) - 程序员编写特定的代码,专门用来捕捉这个异常(这段代码与程序逻辑无关,只与异常处理有关) - 如果 ...

  4. Python学习之异常处理

    1.首先了解错误和异常的概念: 错误:代码运行前的代码错误或者是程序执行过程中的逻辑错误 1:语法错误:代码不符合解释器或者编译器语法(代码错误) 2:逻辑错误:不完整或者不合法输入或者计算出现问题( ...

  5. Python学习--12 异常处理、调试

    异常捕获 语法格式: try: pass except xxx as e: pass except xxx as e: pass ... else: pass finally: pass except ...

  6. Python学习笔记(异常处理)

    用户输入了一个不合规定的值,或者需要打开的文件不存在.这些情况被称作“异常”,一个好的程序需要能处理可能发生的异常,避免程序因此而中断. 例如我们去打开一个文件: f = file('non-exis ...

  7. python学习之----异常处理小示例

    网络是十分复杂的.网页数据格式不友好,网站服务器宕机,目标数据的标签找不到,都 是很麻烦的事情.网络数据采集最痛苦的遭遇之一,就是爬虫运行的时候你洗洗睡了,梦 想着明天一早数据就都会采集好放在数据库里 ...

  8. python学习笔记(六)文件夹遍历,异常处理

    python学习笔记(六) 文件夹遍历 1.递归遍历 import os allfile = [] def dirList(path): filelist = os.listdir(path) for ...

  9. Python学习系列(九)(IO与异常处理)

    Python学习系列(九)(IO与异常处理) Python学习系列(八)( 面向对象基础) 一,存储器 1,Python提供一个标准的模块,称为pickle,使用它既可以在一个文件中存储任何Pytho ...

随机推荐

  1. VS Code 中 HTML 文档注释 js 语句异常

    今天用 VS Code 编辑 html 文档时,发现快捷键注释 js 代码显示成 “<!--  …… -->”,怀疑是不是因为安装了某个插件,随后排查出系 Jinja 所致,将其禁用之后就 ...

  2. Spring MVC之@RequestBody, @ResponseBody 详解(转)

    简介: @RequestBody 作用: i) 该注解用于读取Request请求的body部分数据,使用系统默认配置的HttpMessageConverter进行解析,然后把相应的数据绑定到要返回的对 ...

  3. redis的事务、主从复制、持久化

    redis事务 和其它数据库一样,Redis作为NoSQL数据库也同样提供了事务机制.在Redis中, MULTI/EXEC/DISCARD/WATCH这四个命令是我们实现事务的基石.Redis中事务 ...

  4. LeetCode 中级 - 从前序与中序遍历序列构造二叉树(105)

    一个前序遍历序列和一个中序遍历序列可以确定一颗唯一的二叉树. 根据前序遍历的特点, 知前序序列(PreSequence)的首个元素(PreSequence[0])为二叉树的根(root),  然后在中 ...

  5. python查找目录及子目录下特定文件

    写这篇博客的缘由: 面试归来翻脉脉发现一个陌生的朋友提出一个面试题,设计实现遍历目录及子目录,抓取.pyc文件. 并贴出两种实现方法: 个人感觉,这两种方法中规中矩,不像是python的风格.pyth ...

  6. C/C++使用Socket通信UDP

    接收端 #include <stdio.h> #include <WinSock2.h> #pragma comment(lib,"WS2_32.lib") ...

  7. [洛谷P1390]公约数的和·莫比乌斯反演

    公约数的和 传送门 分析 这道题很显然答案为 \[Ans=\sum_{i=1}^n\sum_{j=i+1}^n (i,j)\] //其中\((i,j)\)意味\(gcd(i,j)\) 这样做起来很烦, ...

  8. MySQL的Root用户密码

    缘由:最近北京市二环内大兴土木,各种挖沟埋线.忽而一纸通令周末断电,故多年不断电的服务器,便令人有了关机后是否还能正常启动的隐忧.其中一台较年迈的服务器中搭载有MySQL数据库.数据库内容本属于外包项 ...

  9. PHP | Uploading and reading of files and database 【PHP | 文件的上传和读取与数据库】

    这是我自己的一个作业,用的是很基础的代码. 有错误的地方欢迎批评和指正! 这里最容易出错的地方在读取数据后向数据库表中插入数据是的数据格式! 文件上传的页面 uploading.php <htm ...

  10. Redis高可用复制集群实现

    redis简单介绍 Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库.Redis 与其他 key - value 缓存产品有以下三个特点: 支持数据的持久化,可以将 ...