2016-11-29 102 views
0

我知道我不清楚这件事,但我不能在标题中更具体。请看下面的代码:Python:假实际尝试之前尝试和发现异常

try: 
    print "Try this out" 
    a = int("Blah blah") 
except: 
    print "I got the exception" 

这段代码的输出是─

Try this out 
I got the exception 

我想要什么蟒蛇做的是检查,如果它有可能引起在尝试一个例外:块,然后再执行它。否则,只需执行except:block。如果不嵌套多个try-except块,可以做这样的事情吗?

+0

为什么你要做这样的事情?这违背了[EAFP]的Python哲学(https://docs.python.org/2/glossary.html)。 –

+0

这个问题或目的不是很清楚。你会怎么做嵌套块?你想要'伪跑'有副作用吗?在执行引发异常的代码之前,你能先检查一个条件吗?这听起来更像你想要做的。 – theorifice

+0

Python是完全动态类型的。我认为你指的是诸如Java这样的语言,其中函数可以在其函数声明结尾处用'throws SomeExceptionType'标记。 Python不是这样的。您会在运行时收到异常,并且无法确定它是否会(甚至可以)抛出。 – Goodies

回答

0

不,这是不可能的,因为你在执行过程中遇到异常。但是你可以这样做:

try: 
    a = int("Blah blah") 
    print "Try this out" 
except: 
    print "I got the exception" 
0

你try语句的打印速度,因为没有错误打印它发生,但只要它试图执行a,得到一个错误,以便except执行。

试试这个办法赶上正确的异常:

try: 
    a = int("Blah blah") 
    print ("Try this out") 

except: 
    print ("I got the exception") 
+0

这不符合我的目的。看到我对这个问题的最后评论... –