python 抛自定义异常
时间: 2023-11-09 11:02:02 浏览: 93
在 Python 中,我们可以通过 raise 语句抛出自定义异常。自定义异常需要继承自 Exception 类或其子类。以下是一个简单的示例:
```python
class MyError(Exception):
pass
def divide(x, y):
if y == 0:
raise MyError("Cannot divide by zero!")
return x / y
try:
result = divide(10, 0)
except MyError as e:
print(e)
else:
print(result)
```
输出:
```
Cannot divide by zero!
```
相关问题
python 如何自定义异常
在 Python 中,可以通过继承 `Exception` 类来自定义异常。以下是一个示例:
```python
class MyException(Exception):
def __init__(self, message):
self.message = message
def __str__(self):
return f"MyException: {self.message}"
```
在这个例子中,我们定义了一个名为 `MyException` 的异常类,它继承自 `Exception` 类。我们重写了 `__init__` 方法来定义异常对象的属性,并重写了 `__str__` 方法来返回异常的字符串表示形式。
现在我们可以在代码中使用 `raise` 语句抛出 `MyException` 异常:
```python
raise MyException("This is my custom exception.")
```
当程序执行到这一行代码时,它会抛出 `MyException` 异常,并将消息“ This is my custom exception.” 作为异常对象的属性传递给 `__init__` 方法。在异常被捕获时,可以通过 `__str__` 方法返回异常的字符串表示形式。
python如何自定义异常
在 Python 中,自定义异常可以通过创建一个新的类来实现。这个新类需要继承自内置的 Exception 类或其子类。
下面是一个简单的例子:
```python
class MyException(Exception):
def __init__(self, message):
self.message = message
def __str__(self):
return self.message
```
在上面的例子中,我们创建了一个名为 MyException 的新异常类,它继承自内置的 Exception 类。该类中定义了两个方法:`__init__()` 和 `__str__()`。`__init__()` 方法接受一个参数 message,用于设置异常的消息。`__str__()` 方法用于返回异常的消息。
现在我们可以使用这个自定义的异常类来抛出异常:
```python
try:
raise MyException("This is my custom exception.")
except MyException as e:
print(e)
```
上面的代码中,我们使用 `raise` 关键字抛出了一个 MyException 类型的异常,并且在 `except` 块中捕获了这个异常并打印了它的消息。
当我们运行上述代码时,输出结果应该是:
```
This is my custom exception.
```
阅读全文
相关推荐
![-](https://img-home.csdnimg.cn/images/20241231044930.png)
![-](https://img-home.csdnimg.cn/images/20241231044930.png)
![-](https://img-home.csdnimg.cn/images/20210720083327.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)