Python - 实现自定义异常

Python - Implementing Custom exceptions

我有一个项目需要 运行 并且不知道如何实现自定义异常。它主要做复杂的科学功能,含糊其辞。

大多数情况下,如果未设置某些内容,它会引发异常。我从 运行nables.

那里得到了这个作为开始的例子
    # Define a class inherit from an exception type
class CustomError(Exception):
    def __init__(self, arg):
        # Set some exception infomation
        self.msg = arg

try:
    # Raise an exception with argument
    raise CustomError('This is a CustomError')
except CustomError, arg:

# Catch the custom exception
print 'Error: ', arg.msg

我不知道这是如何工作的,也不知道我将如何实现我的代码。这不是很明确。

了解需要创建的基本异常。

在函数中:

if self.humidities is None:
        print "ERROR: Humidities have not been set..."
        return

显然这需要 raise/throw 一个例外。

A ValueError 看起来适合您的湿度示例。

if self.humidities is None:
    raise ValueError('Humidities value required')

如果你想具体一点:

class HumiditiesError(Exception):
    pass

def set_humidities(humidities):
    if humidities is None:
        raise HumiditiesError('Value required')

try:
    set_humidities(None)
except HumiditiesError as e:
    print 'Humidities error:', e.message

这定义了一个名为 HumiditiesErrorException 的子 class。默认行为似乎足以满足您的示例,因此 class 的主体为空 (pass),因为不需要额外或修改的功能。

N.B. Python 2 假设。在 Python 3 中,您将访问 e.args 元组的元素。