异常

# 异常

在 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

在上面的例子中,由于除数为零,会引发 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

# 自定义异常

在 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

在上面的示例中,我们定义了一个名为 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
上次更新: 2025/02/10, 20:20:37
最近更新
01
Git问题集合
01-29
02
安装 Nginx 服务器
01-25
03
安装 Docker 容器
01-25
更多文章>
×
×