昆明建企业网站多少钱,视频拍摄教学,网站推广产品,手机网站设计方案目录
一.Python 异常处理简介二.Python 异常捕获方式 1.捕获所有异常2.捕获指定异常3.捕获多个异常4.万能的异常捕获5.异常中的 else6.异常中的 finally7.raise 主动触发异常 三.猜你喜欢 零基础 Python 学习路线推荐 : Python 学习目录 Python 基础入门 在 Python 开…目录
一.Python 异常处理简介二.Python 异常捕获方式 1.捕获所有异常2.捕获指定异常3.捕获多个异常4.万能的异常捕获5.异常中的 else6.异常中的 finally7.raise 主动触发异常 三.猜你喜欢 零基础 Python 学习路线推荐 : Python 学习目录 Python 基础入门 在 Python 开发中代码书写时难免有疏忽或者意向不到的 bug 导致程序 run 的过程中有可能会直接崩溃
然后对于程序猿而言程序因 bug 崩溃是家常便饭为了增加程序的健壮性防止程序崩溃我们可以对程序的有可能发生崩溃的代码增加异常处理以达到程序稳健运行的目的。 一.Python 异常处理简介
一般情况Python 无法正常处理程序时就是会产生异常造成程序崩溃举个例子
1.大家都知道分母不能为 0如果分母为 0程序必然崩溃
x 3/0程序崩溃/报错ZeroDivisionError: division by zero2.假如 Python 文件读写 中我们讲解了文件的读写操作如果我们对一个不存在的文件读取内容程序必然也会崩溃
# 读取123.txt文件实际上该文件并不存在
fp open(123.txt,r)程序崩溃/报错FileNotFoundError: [Errno 2] No such file or directory: 123.txt对于以上的各种异常情况我们可以通过 try…except…解决那么具体有哪些异常能捕获呢如下所示
1.BaseException — 所有异常的基类2.SystemExit — 解释器请求退出3.KeyboardInterrupt — 用户中断执行(通常是输入^C)4.Exception — 常规错误的基类5.StopIteration — 迭代器没有更多的值6.GeneratorExit — 生成器(generator)发生异常来通知退出7.StandardError — 所有的内建标准异常的基类8.ArithmeticError — 所有数值计算错误的基类9.FloatingPointError — 浮点计算错误10.OverflowError — 数值运算超出最大限制11.ZeroDivisionError — 除(或取模)零 (所有数据类型)12.AssertionError — 断言语句失败13.AttributeError — 对象没有这个属性14.EOFError — 没有内建输入,到达 EOF 标记15.EnvironmentError — 操作系统错误的基类16.IOError — 输入/输出操作失败17.OSError — 操作系统错误18.WindowsError — 系统调用失败19.ImportError — 导入模块/对象失败20.LookupError — 无效数据查询的基类21.IndexError — 列中没有此索引(index)22.KeyError — 映射中没有这个键23.MemoryError — 内存溢出错误(对于 Python 解释器不是致命的)24.NameError — 未声明/初始化对象 (没有属性)25.UnboundLocalError — 访问未初始化的本地变量26.ReferenceError — 弱引用(Weak reference)试图访问已经垃圾回收了的对象27.RuntimeError — 一般的运行时错误28.NotImplementedError — 尚未实现的方法29.SyntaxError — Python 语法错误30.IndentationError — 缩进错误31.TabError — Tab 和空格混用32.SystemError — 一般的解释器系统错误33.TypeError — 对类型无效的操作34.ValueError — 传入无效的参数35.UnicodeError — Unicode 相关的错误36.UnicodeDecodeError — Unicode 解码时的错误37.UnicodeEncodeError — Unicode 编码时错误38.UnicodeTranslateError — Unicode 转换时错误39.Warning — 警告的基类40.DeprecationWarning — 关于被弃用的特征的警告41.FutureWarning — 关于构造将来语义会有改变的警告42.OverflowWarning — 旧的关于自动提升为长整型(long)的警告43.PendingDeprecationWarning — 关于特性将会被废弃的警告44.RuntimeWarning — 可疑的运行时行为(runtime behavior)的警告45.SyntaxWarning — 可疑的语法的警告46.UserWarning — 用户代码生成的警告[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QaPnrCEr-1622213823637)(blob:https://www.codersrc.com/d6c5ed6d-6da0-4e59-bd44-380ff6d8db5d “Python 异常处理-猿说编程”)]
二.Python 异常捕获方式
1.捕获所有异常
try:代码
except:print(异常说明)示例代码
# !usr/bin/env python
# -*- coding:utf-8 _*-Author:猿说编程
Blog(个人博客地址): www.codersrc.com
File:Python 异常.py
Time:2021/04/22 08:00
Motto:不积跬步无以至千里不积小流无以成江海程序人生的精彩需要坚持不懈地积累try:x 3 / 0 # 程序出现异常不会继续执行后面的代码print(hello world)
except:print(异常说明分母不能为0)print(程序正常结束)
输出结果异常说明分母不能为0
程序正常结束2.捕获指定异常
try: 语句
except 异常名 :print(异常说明)示例代码
# !usr/bin/env python
# -*- coding:utf-8 _*-Author:猿说编程
Blog(个人博客地址): www.codersrc.com
File:Python 异常.py
Time:2021/04/22 08:00
Motto:不积跬步无以至千里不积小流无以成江海程序人生的精彩需要坚持不懈地积累try:fp open(123.txt,r) # 程序出现异常不会继续执行后面的代码print(hello world)fp.close()
except IOError:print(异常说明文件读取失败)print(程序正常结束)
输出结果异常说明文件读取失败
程序正常结束3.捕获多个异常
try: 语句
except 异常名1 :print(异常说明1)
except 异常名2 :print(异常说明2)
except 异常名3 :print(异常说明3)该种异常处理语法的规则是
a.执行 try 下的语句如果引发异常则执行过程会跳到第一个 except 语句。b.如果第一个 except 中定义的异常名与引发的异常匹配则执行该 except 中的语句。c.如果引发的异常不匹配第一个 except则会搜索第二个 except允许编写的 except 数量没有限制。d.如果所有的 except 都不匹配则异常会传递到下一个调用本代码的最高层 try 代码中。
示例代码:
# !usr/bin/env python
# -*- coding:utf-8 _*-Author:猿说编程
Blog(个人博客地址): www.codersrc.com
File:Python 异常.py
Time:2021/04/22 08:00
Motto:不积跬步无以至千里不积小流无以成江海程序人生的精彩需要坚持不懈地积累try:fp open(123.txt,r) # 程序出现异常不会继续执行后面的代码print(hello world)fp.close()
except GeneratorExit:print(异常说明GeneratorExit)
except FloatingPointError:print(异常说明FloatingPointError)
except OverflowError:print(异常说明OverflowError)
except ZeroDivisionError:print(异常说明ZeroDivisionError)
except IOError:print(异常说明IOError)print(程序正常结束)
输出结果异常说明IOError
程序正常结束4.万能的异常捕获
try: 语句
except Exception as e: # 自动识别异常信息并将异常信息保存在e中print(异常说明,e)示例代码
# !usr/bin/env python
# -*- coding:utf-8 _*-Author:猿说编程
Blog(个人博客地址): www.codersrc.com
File:Python 异常.py
Time:2021/04/22 08:00
Motto:不积跬步无以至千里不积小流无以成江海程序人生的精彩需要坚持不懈地积累try:fp open(python.txt,r) # 程序出现异常不会继续执行后面的代码print(hello world)fp.close()
except Exception as e:print(异常说明,e)print(程序正常结束)
输出结果异常说明 [Errno 2] No such file or directory: python.txt
程序正常结束
5.异常中的 else
如果判断完没有异常之后还想做其他事就可以使用下面这样的 else 语句注意是在 try 中没有异常情况下才会执行 else 之后的代码。
try: 语句
except 异常名1 :print(异常说明1)
except 异常名2 :print(异常说明2)
else: 语句 # try语句中没有异常则执行此段代码示例代码
# !usr/bin/env python
# -*- coding:utf-8 _*-Author:猿说编程
Blog(个人博客地址): www.codersrc.com
File:Python 异常.py
Time:2021/04/22 08:00
Motto:不积跬步无以至千里不积小流无以成江海程序人生的精彩需要坚持不懈地积累try:print(hello world)
except GeneratorExit:print(异常说明GeneratorExit)
except FloatingPointError:print(异常说明FloatingPointError)
except OverflowError:print(异常说明OverflowError)
except ZeroDivisionError:print(异常说明ZeroDivisionError)
else:print(i love you)print(程序正常结束)
输出结果hello world
i love you
程序正常结束6.异常中的finally
try…finally…语句无论是否发生异常都将会执行最后的代码。
try: 语句
finally: 语句 示例代码
# !usr/bin/env python
# -*- coding:utf-8 _*-Author:猿说编程
Blog(个人博客地址): www.codersrc.com
File:Python 异常.py
Time:2021/04/22 08:00
Motto:不积跬步无以至千里不积小流无以成江海程序人生的精彩需要坚持不懈地积累try:fp open(python.txt,r) # 程序出现异常不会继续执行后面的代码print(hello world)fp.close()
except Exception as e:print(异常说明,e)
finally:print(finally) # 无论是否发生异常都将会执行最后的代码print(程序正常结束)
输出结果raise Exception!
异常说明 [Errno 2] No such file or directory: python.txt
finally
程序正常结束7.raise主动触发异常
可以使用 raise 语句自己触发异常,语法如下
raise [Exception [, args [, traceback]]]语句中 Exception 是异常的类型例如IOError 参数标准异常中任一种args 是自已提供的异常参数。最后一个参数是可选的在实践中很少使用如果存在是跟踪异常对象示例代码如下
# !usr/bin/env python
# -*- coding:utf-8 _*-Author:猿说编程
Blog(个人博客地址): www.codersrc.com
File:Python 异常.py
Time:2021/04/22 08:00
Motto:不积跬步无以至千里不积小流无以成江海程序人生的精彩需要坚持不懈地积累try:raise Exception(raise Exception!) # 触发异常后后面的代码就不会再执行print(hello world)
except Exception as e:print(e)
finally:print(OK)
输出结果raise Exception!
OK在 Python 开发中为了增加程序的健壮性异常处理 try…except… 是必须掌握的内容. 三.猜你喜欢
Python for 循环Python 字符串Python 列表 listPython 元组 tuplePython 字典 dictPython 条件推导式Python 列表推导式Python 字典推导式Python 函数声明和调用Python 不定长参数 *argc/**kargcsPython 匿名函数 lambdaPython return 逻辑判断表达式Python 字符串/列表/元组/字典之间的相互转换Python 局部变量和全局变量Python type 函数和 isinstance 函数区别Python is 和 区别Python 可变数据类型和不可变数据类型Python 浅拷贝和深拷贝
未经允许不得转载猿说编程 » Python 异常处理