异常处理
异常抛出
Python 主动抛出异常,一般使用 raise 语句来抛出一个指定的异常。
raise 语法格式如下:
raise 异常类型(异常信息)
- 异常类型 是一个 Python 内置的异常类型或自定义的异常类型,用于指定抛出的异常的类型。
- 异常信息 是一个字符串,用于描述异常的详细信息。
主动抛出一个异常:
x = 10
if x > 5:
raise Exception('x 不能大于 5。x 的值为: {}'.format(x))
# Traceback (most recent call last):
# File "<stdin>", line 2, in <module>
# Exception: x 不能大于 5。x 的值为: 10
这里的 Exception 就是 Python 内置的异常类,在大部分情况下,都可以直接抛出该异常来中断程序,并在调用处捕获并处理。
自定义异常
对于异常的学习就是我们对面向对象编程的一次完美复习。对于 Exception
和 上节课学到的ZeroDivisionError
来说,是不是非常像是 Person
和 Student
的关系呢?接下来我们就带着这个思路来一起写一个自定义异常吧。假设异常的名称叫 NotFoundException
。其实我们只需要定义该类,并继承 Exception
,就结束了,代码如下:
class NotFoundException(Exception):
pass # pass 是一个占位符语句,用于占据一个代码块中的位置
#表示该位置上什么也不做。它的作用是为了保持程序结构的完整性,避免因缺少内容而导致语法错误。
抛出自定义异常并捕获
class NotFoundException(Exception):
pass
try:
raise NotFoundException('发生了自定义异常')
except NotFoundException as e:
print(e) # 发生了自定义异常