1 概述
1.1 异常示例
v = 6 / 0 # 除数不能为 0
print(v)
2 异常处理
2.1 捕获异常 try except
# try:常规程序块
try:
v = 6 / 0
print(v)
# except: 捕获异常(捕获到就停止)
except ZeroDivisionError: # 测试 IOError
print('被除数不能为 0')
except Exception as e: # 常规异常的基类
print(f'仅异常未被上述捕获时,执行此处,{e}')
# else:仅无异常时,执行
else:
print('仅无异常时,执行')
# 无论是否异常,均执行
finally:
print('无论是否异常,均执行')
2.2 抛出异常 raise
try:
a = input("输入一个数:")
# 判断用户输入的是否为数字
if not a.isdigit():
raise ValueError("a 必须是数字")
except ValueError as e:
# 返回异常信息
print(e) # a 必须是数字
# 返回对象的规范字符串表示形式
print("引发异常:", repr(e)) # 引发异常:ValueError('a 必须是数字')
3 异常类型
3.1 内置异常
内置异常 | 描述信息 |
---|---|
ZeroDivisionError | 除以零的错误 |
ValueError | 值错误,通常与数据类型转换相关 |
TypeError | 类型错误,操作不支持的数据类型 |
FileNotFoundError | 文件未找到错误 |
Error # 了解即可。 输入 Error,会提示所有的标准异常
3.2 自定义异常
class MyError(Exception):
def __init__(self, code, message):
self.code = code
self.message = message
def __str__(self):
return f"{self.code}: {self.message}"
def divide(a, b):
if b == 0:
raise MyError(400, "除数不能为0")
return a / b
if __name__ == '__main__':
try:
result = divide(6, 0)
except MyError as e:
print(e) # 400: 除数不能为0
原文地址:https://blog.csdn.net/qq_34745941/article/details/134708475
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_18803.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。