python异常处理

1.在Python中,异常处理是一种用于管理运行时错误的机制。当Python脚本遇到无法继续执行的情况时,它会引发一个异常。Python的异常处理主要通过try、except、else、finally和raise等关键字来实现

2.异常处理时,你可以使用try块来包裹可能引发异常的代码,然后使用except块来捕获并处理这些异常。你可以指定要捕获的异常类型,或者使用except Exception as e捕获所有继承自Exception的异常。使用else块可以处理没有异常发生时的情况,而finally块无论是否发生异常都会执行,通常用于清理资源
结构如下:
在这里插入图片描述
3.异常类型包括:
Exception:所有异常的基类。
ArithmeticError:与算术运算相关的所有异常的基类。
ZeroDivisionError除法运算中除数为0时引发。
OverflowError:算术运算结果太大,无法表示时引发。
FloatingPointError:浮点运算错误时引发。
AssertionError:断言语句失败时引发。
AttributeError:尝试访问一个对象不存在的属性时引发。
EOFError:没有更多的数据可读时引发,通常与输入操作有关。
ImportError:导入模块或包失败时引发。
IndentationError:缩进错误时引发,属于SyntaxError的子类。
IndexError:索引超出序列(如列表、元组等)的范围时引发。
KeyError:尝试访问字典中不存在的键时引发。
KeyboardInterrupt:用户中断执行(通常是Ctrl+C)时引发。
LookupError:与查找相关的所有异常的基类。
NameError:尝试访问一个未定义的局部变量时引发。
UnboundLocalError:试图访问一个未被赋值的局部变量时引发,该变量在函数或方法的作用域内。
MemoryError:内存不足时引发。
OSError:操作系统错误,所有I/O相关的错误都继承自这个类。
FileNotFoundError(Python 3.x):尝试打开不存在的文件时引发。
IOError(在Python 3.x中已重命名为OSError,但在向后兼容的代码中仍可能遇到)。
ReferenceError:弱引用尝试访问一个已经不存在的对象时引发。
RuntimeError:一般运行时错误。
NotImplementedError:抽象方法或接口中未实现的方法被调用时引发。
SyntaxError:Python语法错误时引发。
SystemError:解释器内部错误。
TypeError:类型错误,比如尝试对不支持的操作类型进行操作时引发。
ValueError:传入函数的参数类型正确但值不适当(如int()函数接收非数字字符串)时引发。
Warning:所有警告的基类,通常是可选的,用于通知用户某些不期望发生的情况

4.raise关键字
在Python中,raise 关键字用于手动触发一个异常。这在你想要在某些特定条件下中断程序的正常流程,并通知调用者发生了错误时非常有用。

在这里插入图片描述
除法出现问题raise ZeroDivisionError

def divide(x, y):  
    if y == 0:  
        # 当y为0时,手动触发一个ZeroDivisionError异常  
        raise ZeroDivisionError("除数不能为0")  
    else:  
        return x / y  
  
try:  
    result = divide(10, 0)  
except ZeroDivisionError as e:  
    # 捕获到ZeroDivisionError异常,并打印异常信息  
    print(f"捕获到异常:{e}")  
else:  
    # 如果没有异常发生,会执行这个块(在这个例子中不会执行)  
    print("除法运算成功")  
finally:  
    # 无论是否发生异常,都会执行这个块  
    print("这是finally块,总是会被执行")

批卷子判断:raise Exception

try:
    sco=eval(input("score:"))
    if sco<0 or sco>100:
        raise Exception('数字出现问题')


except Exception as e:
    print(e)

else:
    print('score:{}' .format(sco))
Logo

GitCode 天启AI是一款由 GitCode 团队打造的智能助手,基于先进的LLM(大语言模型)与多智能体 Agent 技术构建,致力于为用户提供高效、智能、多模态的创作与开发支持。它不仅支持自然语言对话,还具备处理文件、生成 PPT、撰写分析报告、开发 Web 应用等多项能力,真正做到“一句话,让 Al帮你完成复杂任务”。

更多推荐