Python学习_07_错误、异常
地毯式地过语法终于快要结束了。。。
Python中的常见异常
1.NameError:尝试访问一个未初始化的变量
2. ZeroDivisionError:除数为0
3. SyntaxError:Python解释器语法错误
4. IndexError:请求的索引超出序列的范围
5. KeyError:请求一个不存在的字典关键字
6. IOError:输入、输出错误
7. AttributeError:尝试访问未知的对象属性
等,这些错误都是来自于Exception类,Exception类和SystemExit、KeyboardInterrupt组成BasicException类,包含所有的异常情况
try…except…else…finally处理异常
try语句会监控语句中的异常,如果出现异常则会执行except 指定错误的语句,如果没有错误成功执行完毕,则执行else语句,不论是否成功执行,都会执行finally语句。
except Exception[, reason],可以有多个,来处理不同的错误,Exception参数传入一个错误类型的对象,reason返回具体异常的原因:
try:
A
except MyException1:
B
except MyException2:
C
else:
D
finally:
E
通过Exception或者BasicException可以捕获到大多数甚至全部的异常。
with语句
with语句针对上下文管理类型的对象做语法上的简化,比如文件是常用的上下文管理类型:
with open(filename) as f:
for line in f:
pass
触发异常
raise语句
通过raise语句可以主动触发异常:raise [someException [, args [, traceback ]]]
语法比较灵活复杂,没有弄非常清楚,查手册吧。。。
断言
assert expression [, arguments]
可以生成一个断言,如果断言为假,则会生成一个AssertionError异常,同样可以被捕获到,如果没有捕获,则会终止程序。
Python学习_07_错误、异常的更多相关文章
- 转 Python3 错误和异常/ Python学习之错误调试和测试
########sample 0 https://www.cnblogs.com/Simon-xm/p/4073028.html except: #捕获所有异常 except: <异常名> ...
- python学习笔记5_异常
python学习笔记5_异常 1.什么事异常 Python使用异常对象(exception object) 来表示异常情况.遇到错误会发生异常. 如果异常对象未被处理或被捕捉,程序就会用所谓的回溯(t ...
- Python学习笔记 - day8 - 异常
异常 在程序运行过程中,总会遇到各种各样的错误.有的错误是程序编写有问题造成的,比如本来应该输出整数结果输出了字符串,有的错误是用户输入造成的,比如让用户输入email地址,结果得到一个空字符串,这种 ...
- python学习日记(异常)
异常和错误 错误 1.语法错误 这种错误,根本过不了python解释器的语法检测,必须在程序执行前就改正 #语法错误示范一 if #语法错误示范二 def test: pass #语法错误示范三 pr ...
- python学习24之异常
'''''''''1.低级错误:纯语法错误2.中级错误:代码存在隐性错误,逻辑缺陷3.高级错误:软件面对不确定性的异常错误''''''一.捕获异常1.基本异常捕获语句try: #异常捕捉语句的开始 代 ...
- Python学习笔记006_异常_else_with
>>> # try-except语句 >>> >>> # try : >>> # 检测范围 >>> # exc ...
- python学习第八天--异常和异常处理
Exception 常用异常: AssertionError 断言语句失败 AttributeError 尝试访问未知的对象属性 IndexError 索引超出序列值 keyError 查找一个不存在 ...
- python常见的错误异常
1.AssertionError 该异常在assert()语句运行失败时输出 2.AttributeError 该异常在参考或设置属性失败时输出 eg:class Gs: pass g = Gs() ...
- Python编程:基础学习常见错误整理
# Python学习之错误整理: # 错误一:# TypeError: cannot concatenate 'str' and 'int' objects# 不能连接str和int对象age = 2 ...
随机推荐
- Swift 线程安全数组
欢迎大家前往腾讯云社区,获取更多腾讯海量技术实践干货哦~ 作者:BigNerdCoding 有并发的地方就存在线程安全问题,尤其是对于 Swift 这种还没有内置并发支持的语言来说线程安全问题更为突出 ...
- iOS中常见的锁
多线程的安全隐患 一块资源可能会被多个线程共享,也就是说多个线程可能会访问同一块资源. 比如多个线程同时操作同一个对象,同一个变量. 当多个线程访问同一块资源时,很容易引发数据错乱和数据安全问题. 比 ...
- 自学Python全栈开发的第二次笔记(Python需要注意的地方)
好几天没写blog了,今天整理整理.写blog一定要坚持下去. Python解释器 #!/usr/bin/env python #-*-coding:utf-8-*- # 无效的内容,只 ...
- ettercap的中间人欺骗+sslstrip过滤掉https协议
环境准备:kali系统 因为kali系统自带ettercap,比较方便, 不需要安装 ifcofing命令查看当前网关 ,当前的IP是: 172.16.42.1 查找局域网所有主机 通过netdisc ...
- UVA 540(队列)
Description Team Queue Queues and Priority Queues are data structures which are known to most comp ...
- 阿里巴巴2016研发project师笔试题
问题1: 假设下列的公式成立:78+78=123,则採用的是_______进制表示的. 本题实则考察进制转换.能够设为x进制.可是x进制有一个问题.即我们无法对x进制直接进行加减乘除.故转化为我们常见 ...
- Golang开发环境搭建(Notepad++、LiteIDE两种方式以及martini框架使用)
本文介绍两种Golang的开发环境一种基于notepad++.还有一种基于liteide. 1.下载Golang语言的pkg:http://golangtc.com/download 直接点击安装,一 ...
- MVC Anti-XSS方案
1:Form提交模式 在使用Form提交时,MVC框架提供了一个默认的机制.如果数据中含有恶意字,则会自动转向出错页面. 2:Ajax+JSON提交模式. MVC框架未提供对于Json数据的Ant ...
- 海量日志采集系统flume架构与原理
1.Flume概念 flume是分布式日志收集系统,将各个服务器的数据收集起来并发送到指定地方. Flume是Cloudera提供的一个高可用.高可靠.分布式的海量日志采集.聚合和传输的系统.Flum ...
- ssm学习(五)--加入分页插件
之前我们的查询列表是将所有的数据查询出来,并没有做分页,当数据很少的时候,是不需要分页,但是如果数据很多的时候,所有数据显示在一个页面显然是不合适的. 之前用hibernate的时候,可以直接通过查询 ...