程序员的公众号:源1024,获取更多资料,无加密无套路!
最近整理了一波电子书籍资料,包含《Effective Java中文版 第2版》《深入JAVA虚拟机》,《重构改善既有代码设计》,《MySQL高性能-第3版》,《Java并发编程实战》等等
获取方式: 关注公众号并回复 电子书 领取,更多内容持续奉上
目录
语法错误
异常
异常处理
处理形式
抛出异常
自定义异常
系列文章索引
Python有两种错误:语法错误和异常。
语法错误
while Trueprint('Hello world')
这种错误,编译器会给出提示,按照提示修改即可。
异常
语法正确,但是代码运行时被检测到的错误。
print('1' + 2)#报错
TypeError: can only concatenate str (not "int") to str
print(100/0)#报错
ZeroDivisionError: division by zero
上面代码都发生了异常:TypeError异常、ZeroDivisonError异常
异常处理
Python 程序捕捉异常使用 try/except 语句
处理形式
#try/excepttry:...except 异常类型:...#try/except...elsetry:...except 异常类型:...else:...# try-finallytry:...except 异常类型:...else:...finally:...
def testException(n):try:print('try:',100 / n)except ZeroDivisionError:print('except异常逻辑处理。。。')else:print('else 逻辑处理。。。')finally:print('finally 逻辑处理。。。')testException(0)
#输出
except异常逻辑处理。。。
finally 逻辑处理。。。testException(1)
#输出
try: 100.0
else 逻辑处理。。。
finally 逻辑处理。。。
else在所有 except 之后使用,没有出现异常时执行;
finally 无论是否出现异常都会执行,最后执行。
抛出异常
a = 0
if a == 0:raise Exception('a不能为0')#输出
Exception: a不能为0
自定义异常
class MyException(Exception):def __init__(self, msg):self.msg = msgdef __str__(self):return repr(self.msg)def test():try:raise MyException('触发自定义异常了。。。')except MyException1 as e:print('MyException异常信息:' + e.msg)else:print('不是MyException异常') finally:print('结束了。') test()
#输出
MyException异常信息:触发自定义异常了。。。
结束了。
系列文章索引
Python(一)关键字、内置函数
Python(二)基本数据类型
Python(三)数据类型转换
Python(四)字符串
Python(五)数字
Python(六) 列表
Python(七) 条件控制、循环语句
Python(八) 字典
Python(九) 集合
Python (十) 元组