#%%
# 使用 jupyter notebook 编写
"""
本章知识目录:
本节非常简单,看PPT即可,下面的代码为一些测试
1.六种典型的异常
2.自定义异常
3.爬虫HTTP异常处理
"""
"""
考试:
典型的6个异常种类
处理异常的基本形式(捕捉try,catch,else,finally)
定义自己的异常
自主抛出异常(assert部分)
"""
#%%
"""
六种典型的异常
1.除零错误(ZeroDivisionError):除数为0
2.名称错误(NameError):变量使用前未进行申明或者初始化
3.类型错误(TypeError):某些函数或者方法只适用于特定的数据类型,如果对数据类型的操作不当,就会产生类型错误
4.数值错误(ValueError):在输入类型正确的情况下,具体输入值错误
5.索引错误(IndexError):超出序列长度的索引操作
6.属性错误(AttributeError):方法或者属性不适用该对象
"""
#%%
# 除零错误
num = 10
print(num/0)
#%%
# 名称错误
print(what)
#%%
# 类型错误
num = 10
print(num+'3')
#%%
# 数值错误
float("Python")
#%%
# 索引错误
lst = [1, 3, 5]
print(lst[10])
#%%
# 属性错误
tup = (1, 5)
tup.append(10)
#%%
try:
print(1)
assert 1/0, "这有一个错误" # assert expression, e 中expression错误,抛出后面的e错误提示
print(2) # 前面有错误,try中剩下的都不会执行
except Exception as e: # 此句仅为 except: 也是可以的
print("除零错误")
else:
print(3) # 只有正确才执行
finally:
print(4) # 无论正确与否都执行
#%%
try:
s = None
if s is None:
print("s是空对象")
raise NameError
print(len(s))
except NameError:
print("名称错误")
#%%
"""
自定义异常
继承于Exception类,由它开始扩展
"""
class NotIntError(Exception):
def __init__(self, error):
self.error = error
a = [1, 2, "", 4, 5, "a", ['1', '2', '3']]
for i in range(len(a)):
try:
if type(a[i]) != int:
raise NotIntError("非整型错误")
except NotIntError as e:
print(e.error)
finally:
print(a[i])
#%%
import logging # 打印日志信息
try:
print(3+'2')
except TypeError as e:
logging.error(e)
print(1)
except ValueError as e:
logging.error(e)
print(2)
finally:
print("logging测试")
#%%
"""
爬虫HTTP异常处理
看PPT
"""
山东大学Python(8)——异常
猜你喜欢
转载自blog.csdn.net/weixin_43360801/article/details/103318068
今日推荐
周排行