当一个参数丢失时如何引发自己的错误?

时间:2018-05-02 07:55:22

标签: python exception error-handling

您好我是Python的新手,我刚刚开始学习错误和异常。我在一个类中有这个函数,在一个名为num的给定索引处插入一行。我知道如果python会引发错误没有给出数字,但我想提出自己的错误。我该怎么做?这就是我试过的。但是引发的错误仍然是默认错误?

 def insertNum(self, num, line):
    if num== None:
        raise Exception("Num not specified.")
    else:
        self.list.insert(num, line)
    return self.list

4 个答案:

答案 0 :(得分:1)

您可以将num的默认值设置为None,然后检查该值是否为None

def insertNum(self, line, num=None):
    if num is None:
        raise Exception("Num not specified.")
    else:
        self.list.insert(num, line)
    return self.list

如果您只将一个参数传递给insertNum方法,则num将设置为None(默认值),并会引发异常。

如果您不想更改参数的顺序,可以使用:

def insertNum(self, num, line=None):
    if line is None:
        raise Exception("Num not specified.")
    else:
        self.list.insert(num, line)
    return self.list

关于默认参数如何工作的简单演示:

>>> def foo(bar, baz=None):
...     print(bar, baz)
...
>>> foo(1, 2)
1 2
>>> foo(2)
2 None

答案 1 :(得分:0)

我建议你阅读exceptions and errors
但主要的想法是你捕获错误,然后你按照自己喜欢的方式处理它们。

try: 
 #do something 
except Exception as e:
 # error occured
 print("A wild error appeared")

答案 2 :(得分:0)

您可以使用RetryStrategy声明。

try...except

答案 3 :(得分:0)

用另一个具有try和除了`的函数包装你的函数,然后你可以提出你想要的错误/异常。

def wrapper_func(self, num, line):
    try:
        self.insertNum(num, line)
    except Exception as e:
        raise Exception("whatever you want")