山东大学Python(8)——异常

#%%
# 使用 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
"""

发布了36 篇原创文章 · 获赞 20 · 访问量 2922

猜你喜欢

转载自blog.csdn.net/weixin_43360801/article/details/103318068