在 Python 中,异常处理用来在程序出错时“兜底”,避免程序直接崩溃,并可以记录错误或做相应处理。
下面从基础到常用技巧给你讲清楚。
try / excepttry:
x = int(input("请输入一个数字:"))
print(10 / x)
except ZeroDivisionError:
print("不能除以 0")
except ValueError:
print("请输入合法的数字")
执行顺序:
try 里的代码exceptexcepttry:
# 可能出错的代码
pass
except Exception as e:
print("发生错误:", e)
✅ 适合顶层保护
❌ 不适合用来掩盖逻辑错误
else:没有异常时执行try:
x = 10
except Exception:
print("出错")
else:
print("一切正常")
finally:无论是否异常都会执行try:
f = open("test.txt", "r")
except FileNotFoundError:
print("文件不存在")
finally:
print("收尾工作")
常用于:
| 异常 | 说明 |
|---|---|
ValueError |
类型正确但值不对 |
TypeError |
类型不对 |
IndexError |
索引越界 |
KeyError |
字典键不存在 |
FileNotFoundError |
文件不存在 |
ZeroDivisionError |
除以 0 |
raisedef divide(a, b):
if b == 0:
raise ValueError("除数不能为 0")
return a / b
class MyError(Exception):
pass
raise MyError("自定义错误")
try:
with open("data.txt", "r", encoding="utf-8") as f:
content = f.read()
except FileNotFoundError:
print("文件不存在")
except IOError:
print("读取失败")
else:
print("读取成功")
finally:
print("操作结束")
✅ 只捕获你预期的异常
✅ 异常信息要清晰
✅ 不要在 except 里“吞掉”错误
❌ 不要滥用 except:
如果你愿意,我也可以:
你想用在什么场景?
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。