欢迎访问宙启技术站
智能推送

except和raise的使用方法

发布时间:2023-07-08 13:11:53

except和raise是Python中异常处理的两个关键字,它们分别用于捕获和抛出异常。下面我会详细介绍它们的使用方法。

1. except的使用方法:

在try代码块中,我们可以通过使用except关键字来捕获可能发生的异常,并对其进行处理。except关键字后面可以跟上异常类型,也可以不指定类型,从而捕获所有类型的异常。

以下是except的几种基本用法:

(1) 捕获指定类型的异常:

try:
    # 可能发生异常的代码
except SomeException:
    # 发生SomeException类型的异常后要执行的代码

可以将SomeException替换为任何你想捕获的异常类型,比如ValueError、TypeError等。

(2) 捕获多个不同类型的异常:

try:
    # 可能发生异常的代码
except (Exception1, Exception2):
    # 发生Exception1或Exception2异常后要执行的代码

使用括号将多个异常类型括起来,中间用逗号分隔。

(3) 捕获所有类型的异常:

try:
    # 可能发生异常的代码
except:
    # 发生任何类型的异常后要执行的代码

省略了异常类型,表示捕获所有类型的异常。

(4) 在捕获异常时获取异常对象:

try:
    # 可能发生异常的代码
except Exception as e:
    # 捕获到的异常对象会被赋值给变量e

通过as关键字将捕获到的异常对象赋值给变量e,从而可以在except代码块中使用该对象。常见的异常对象属性包括异常的类型、描述信息等。

2. raise的使用方法:

当我们需要手动抛出一个异常时,可以使用raise关键字。raise后面可以跟上异常类型和异常描述信息。

以下是raise的几种常见用法:

(1) 抛出异常对象:

raise SomeException

其中SomeException可以替换为任何异常类型。

(2) 抛出异常对象,并提供描述信息:

raise SomeException("Exception occurred")

提供了一个字符串参数作为异常的描述信息。

(3) 抛出异常对象时,同时保留原有的异常栈信息:

raise SomeException from original_exception

原有的异常栈信息可以通过使用关键字from来保留。original_exception是之前捕获到的异常对象。

(4) 在自定义异常类中添加其他信息:

class MyException(Exception):
    def __init__(self, message):
        self.message = message
    
    def __str__(self):
        return self.message

raise MyException("Custom Exception")

自定义异常类可以扩展Exception类来实现,通过在类中定义构造函数和__str__方法,可以添加自定义的信息。

以上就是except和raise的使用方法。通过合理使用这两个关键字,我们可以更好地处理和抛出异常,提高代码的稳定性和可读性。