python异常处理机制try-except,常见异常类型,raise关键字
UnboundLocalError:试图访问一个未被赋值的局部变量时引发,该变量在函数或方法的作用域内。FileNotFoundError(Python 3.x):尝试打开不存在的文件时引发。Warning:所有警告的基类,通常是可选的,用于通知用户某些不期望发生的情况。ArithmeticError:与算术运算相关的所有异常的基类。EOFError:没有更多的数据可读时引发,通常与输入操作有关。
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))

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