我可以在python中故意引发异常吗?

时间:2012-07-17 16:21:44

标签: python exception testing

所以这是一个有点奇怪的问题,但它可能很有趣!

我需要以某种方式在python中可靠地导致异常。我希望它是人为触发的,但我也愿意在我的代码中嵌入一些总会导致异常的东西。 (我已经设置了一些异常处理,并希望对其进行测试)

我一直在环顾四周,一些想法似乎被零除或沿着这些线路的东西总是会导致异常 - 有更好的方法吗?最理想的是在程序运行时模拟互联网连接的丢失......任何想法都会很棒!

玩得开心!

3 个答案:

答案 0 :(得分:5)

是的,有:您可以明确提出自己的例外情况。

raise Exception("A custom message as to why you raised this.")

您可能希望针对网络连接丢失提出适当的异常/错误。

答案 1 :(得分:3)

您可以在Python中定义自己的例外,以便创建自定义错误以满足您的需求。您可以测试某些条件是否存在,并使用该测试的真实性来决定是否提高您的闪亮自定义异常:

class MyFancyException(Exception): pass

def do_something():
    if sometestFunction() is True:
        raise MyFancyException
    carry_on_theres_nothing_to_see()    

try:
    do_something()
except MyFancyException:
    # This is entirely up to you! 
    # What needs to happen if the exception is caught?

documentation有一些有用的例子。

答案 2 :(得分:0)

是的,你可以选择

  1 / 0 

代码中的任何位置都会发生运行时错误,特别是在这种情况下为ZeroDivisionError: integer division or modulo by zero

这是通过在代码中嵌入某些东西来获得异常的最简单方法(正如您在帖子中提到的那样)。您当然可以提出自己的例外情况......取决于您的具体需求。