Day25 python打卡

异常报错类型
SyntaxError (语法错误)
原因: 代码不符合 Python 的语法规则,解释器在尝试解析代码时就会失败。这种错误在程序 运行之前 就会被检测到。

NameError (名称错误)
原因: 尝试使用一个未被定义的变量、函数或对象的名称。

TypeError (类型错误)
原因: 对一个不支持该操作的数据类型执行了某个操作或函数。

ValueError (值错误)
原因: 函数接收到的参数类型正确,但其值不合适或无效。

IndexError (索引错误)
原因: 尝试访问序列(如列表、元组、字符串)中一个不存在的索引。

KeyError (键错误)
原因: 尝试访问字典中一个不存在的键。

AttributeError (属性错误)
原因: 尝试访问一个对象没有的属性或方法。

ZeroDivisionError (除零错误)
原因: 尝试将一个数字除以零。

FileNotFoundError (文件未找到错误)
原因: 尝试打开一个不存在的文件(通常是在读模式下),或者路径不正确。

ModuleNotFoundError (导入错误)
原因:尝试导入一个不存在的模块,或者模块存在但其中的特定名称找不到, Python 的模块加载器找不到这个模块。去安装库即可,如果是自定义的模块,配置好对应的路径

try - except- else -fiinally
try: 包含可能引发异常的代码。

except: 处理在 try 块中发生的特定异常。

else: (可选)如果 try 块中没有发生任何异常,则执行此代码块。

finally: (可选)无论 try 块中是否发生异常,总会执行此代码块。

为什么使用 else?

1. 清晰性: 它清楚地将“主要尝试的操作(可能出错)”与“操作成功后的后续步骤”分开。

2. 避免意外捕获: 如果把“成功后的后续步骤”也放在 try 块里,而这些步骤本身也可能引发 try 块想要捕获的同类型异常,那么就会导致逻辑混淆。else 块中的代码不会被同一个 try 块的 except 子句捕获。

try:
    # 可能会引发异常的代码
except ExceptionType: # 最好指定具体的异常类型,例如 ZeroDivisionError, FileNotFoundError
    # 当 try 块中发生 ExceptionType 类型的异常时执行的代码
except: # 不推荐:捕获所有类型的异常,可能会隐藏bug
    # 当 try 块中发生任何其他未被前面 except 捕获的异常时执行的代码

try:
    # 可能会引发异常的代码
except ExceptionType:
    # 当 try 块中发生 ExceptionType 类型的异常时执行的代码
else:
    # 当 try 块中【没有】发生任何异常时执行的代码

@浙大疏锦行

你可能感兴趣的:(python60天打卡,python,开发语言)