5

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

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

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

玩得开心!

4

3 回答 3

5

是的,有:您可以明确提出自己的异常。

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

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

于 2012-07-17T16:23:33.397 回答
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?

文档有一些有用的示例。

于 2012-07-17T16:40:58.120 回答
0

是的,你可以扑通一声

  1 / 0 

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

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

于 2012-07-17T16:26:33.830 回答