异常名称 | 描述 |
---|---|
BaseException | 所有异常的基类 |
SystemExit | 解析器请求退出 |
Exception | 常规错误的基类 |
StopIteration | 迭代器没有更多的值 |
ArithmeticError | 所有数值计算错误的基类 |
FloatingPointError | 浮点计算错误 |
OverflowError | 数值运算超出最大限制 |
AttributeError | 对象没有这个属性 |
FileNotFoundError | 文件未找到 |
ZeroDivisionError | 除(或取模)零 (所有数据类型) |
....... | ...... |
try: 可能发生错误的代码 except: 如果出现异常执行的代码
try: 可能发生错误的代码 except 异常类型: 如果捕获到该异常类型执行的代码
注意:
- 如果尝试执行的代码的异常类型和要捕获的异常类型不一致则无法捕获异常
- 一般try下方只放一行尝试执行的代码
try:. print(1/0) except (NameError, ZeroDivisionError): print(‘有错误‘)
try: print(num) except (NameError, ZeroDivisionError) as result: print(result)
try: print(num) except Exception as result: print(result)
try: print(1) except Exception as result: print(result) else: print(‘我是else,是没有异常的时候执行的代码‘)
try: f = open(‘test.txt‘, ‘r‘) except Exception as result: f = open(‘test.txt‘, ‘w‘) else: print(‘没有异常,真开心‘) finally: f.close()
体验异常传递
import time try: f = open(‘test.txt‘) try: while True: content = f.readline() if len(content) == 0: break time.sleep(2) print(content) except: # 如果在读取文件的过程中,产生了异常,那么就会捕获到 # 比如 按下了 ctrl+c print(‘意外终止了读取数据‘) finally: f.close() print(‘关闭文件‘) except: print("没有这个文件")
在Python中,抛出自定义异常的语法为 raise 异常类对象 。
# 自定义异常类,继承Exception class ShortInputError(Exception): def __init__(self, length, min_len): self.length = length self.min_len = min_len # 设置抛出异常的描述信息 def __str__(self): return f‘你输入的长度是{self.length}, 不能少于{self.min_len}个字符‘ def main(): try: con = input(‘请输入密码:‘) if len(con) < 3: raise ShortInputError(len(con), 3) except Exception as result: print(result) else: print(‘密码已经输入完成‘) main()
欢迎关注公众号:Python爬虫数据分析挖掘,回复【开源源码】免费获取更多开源项目源码
公众号每日更新python知识和【免费】工具
原文:https://www.cnblogs.com/chenlove/p/13650072.html