Python 捕获异常(Try Except Exception)

发布时间:2024年01月16日

目录

前言

常见的十类异常类型:

try...except...else语句

格式

示例1

示例2

捕获所有异常(常用)

格式

示例?

try...except...finally语句

格式

示例

前言

异常捕获就是针对某一部分可能出错的代码,在运行期间一旦出现错误就捕获它,在捕获到错误后将错误信息写入日志文件或进行其他的处理,然后接着继续运行后续的代码,捕获异常的目的就是不让代码停止运行。?

常见的十类异常类型:

TypeError             //当操作或函数应用于不适当类型的对象时引发。
ValueError            //当函数或操作的参数具有正确的类型但不合法时引发。
NameError             //当尝试访问一个未定义的变量时,会抛出NameError异常。
IndexError            //当尝试访问列表、元组或字符串中不存在的索引时引发。
KeyError              //当尝试访问字典中不存在的键时引发。
ZeroDivisionError     //当尝试除以零时引发。
IOError               //当尝试读取不存在的文件或无法访问文件时引发。
ImportError           //当尝试导入不存在的模块或包时引发。
AttributeError        //当尝试访问对象不存在的属性时引发。
KeyboardInterrupt     //当用户中断程序执行时引发。

try...except...else语句

格式
try:
? ? ...
except:
? ? ...
else:
? ? ...

示例1
try:
    result = 2 + 'a'
    print(result)
except TypeError:
    print("操作或函数应用于不适当类型")

示例2
try:
    result = 1 + 2
    print(result)
except TypeError:
    print("操作或函数应用于不适当类型")
else:
    print("数字1可以和数字2直接相加")

print("-------------------------------")
try:
    result = "a" + 1
    print(result)
except TypeError:
    print("操作或函数应用于不适当类型")
else:
    print("字符串a不能和数字1直接相加")

总结:

根据上述代码可知

try语句中的代码块没有发生任何异常时,else语句中的代码块才会被执行

捕获所有异常(常用)

格式
try:
    ...
except Exception as e:
    ...
else:
    ...
示例?
try:
    answer = int(input("请输入一个整数:"))

except Exception as e:
    print("程序出现错误" + str(e))

else:
    print("输入的是整数")
输入2.5

????????程序出现错误invalid literal for int() with base 10: '2.5'

输入a

????????程序出现错误invalid literal for int() with base 10: 'a'

输入1

????????输入的是整数

try...except...finally语句

格式
try:
    ...
except:
    ...
finally:
    ...
示例
try:
    result = "a" + 1
    print(result)
except TypeError:
    print("操作或函数应用于不适当类型")
finally:
    print("结果对不对的都输出")

总结:

根据上述代码可知?

无论是否发生异常,都会执行 finally 分支中的代码。try 分支或者任何 except 分支执行之后立即执行 finally 分支。

文章来源:https://blog.csdn.net/eighters/article/details/135629883
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。