我是一名Java开发人员,他是Python的新手,我将Java类重写为Python类.我试图尽可能地模仿Python类中原始类的流程.Java类有几行,
if(condition)
throw new Exception("text here")
Run Code Online (Sandbox Code Playgroud)
我一直在查看Python文档中的异常,并且无法找到与Java语法等效的Python.
我已经raise Exception("text here")通过阅读这个StackOverflow帖子尝试了一些东西(我认为很接近),但似乎这是在try except块中使用并且会导致从try块跳转到except块; 而我正试图避免try except阻塞而只是抛出异常.
我认为可行的解决方案是这样的,
try:
if(condition):
raise Exception("text here")
except:
...
Run Code Online (Sandbox Code Playgroud)
但我想知道是否有一种与 Java 方法更密切相关的方法,以便我可以尽可能多地维护流程(让它们看起来相似).
小智 5
异常处理可能是Python的一个非常重要的方面,它在语法和语义方面与Java相差最小.这真的很公正raise Exception("text here").不,它不必在一个try块内有词法.与在Java中一样,它向上传播调用堆栈,直到它最终遇到一个try块(带有匹配except子句),或者如果没有这样的块,它会终止程序并输出错误消息.
忘记尝试,如果没有它,你的代码将完全相同
正如其他人指出的那样:这会抛出(并且不会捕获或处理异常):
condition = "Foo"
if(condition is "Foo"):
raise Exception("FooException")
Run Code Online (Sandbox Code Playgroud)
但是,如果您想像抛出 java 方法一样处理它,那么:
正如本文档中所解释的,您将通过方法抛出它们,然后您所要做的就是尝试该方法,而不是方法中的每个条件。
#!/usr/local/bin/python2.7
def foo(num):
if (num == 2):
raise Exception("2Exception")
if (num == 3):
raise Exception("Numception")
def handleError(e):
print(e)
def main():
try:
foo(3)
print("no errors")
except Exception, e:
handleError(e)
if __name__ == "__main__":
main()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1297 次 |
| 最近记录: |