异常
# 异常
在 Python 中,异常是指在程序执行期间发生的错误或异常情况。当一个异常发生时,程序会停止执行,并抛出一个异常对象。异常对象包含有关异常的信息,如异常类型、异常消息和异常发生的位置等。
以下是一些常见的 Python 异常:
- NameError:尝试访问一个未定义的变量时引发的异常。
- TypeError:尝试执行不支持的操作类型时引发的异常。
- ValueError:传递给函数的参数无效时引发的异常。
- IndexError:尝试访问不存在的列表元素时引发的异常。
- KeyError:尝试访问不存在的字典键时引发的异常。
- AttributeError:尝试访问不存在的对象属性时引发的异常。
- ZeroDivisionError:尝试除以零时引发的异常。
- IOError:输入输出错误时引发的异常。
可以使用 try-except 语句来处理异常。try 块中包含可能会引发异常的代码,如果引发异常,就会跳到 except 块中执行异常处理代码。例如:
try:
x = 1 / 0
except ZeroDivisionError:
print("除数不能为零")
1
2
3
4
2
3
4
在上面的例子中,由于除数为零,会引发 ZeroDivisionError 异常。但是由于使用了 try-except 语句来处理异常,所以程序不会停止执行,而是打印出了“除数不能为零”这个异常处理代码。
# 捕获异常信息
try:
open('yang.txt', 'r')
except (NameError, ZeroDivisionError, FileNotFoundError) as result:
open('yang.txt', 'w')
print('异常执行的代码')
print(result)
else:
print('没有异常就执行这行代码')
# 捕获所有异常
try:
print(1 / 0)
except Exception as result:
print(result)
else:
print('没有异常就执行这行代码')
finally:
print('无论是否异常都要执行的代码')
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# 自定义异常
在 Python 中,我们可以通过继承 Exception 类来定义自己的异常。以下是一个自定义异常的示例:
class MyException(Exception):
def __init__(self, message):
self.message = message
def __str__(self):
return f"MyException: {self.message}"
1
2
3
4
5
6
2
3
4
5
6
在上面的示例中,我们定义了一个名为 MyException 的自定义异常类。它继承了 Exception 类,并实现了一个构造函数和一个字符串表示函数。构造函数接受一个参数 message,该参数表示异常的描述信息。__str__
方法用于返回异常对象的字符串表示。
使用自定义异常时,我们可以像使用内置异常一样使用它。例如:
try:
# some code that may raise MyException
raise MyException("Something went wrong")
except MyException as e:
print(e) # MyException: Something went wrong
1
2
3
4
5
2
3
4
5
编辑 (opens new window)
上次更新: 2025/02/10, 20:20:37
← 模块和包