代码之家  ›  专栏  ›  技术社区  ›  Aykhan Hagverdili

尝试,但不捕获异常[重复]

  •  2
  • Aykhan Hagverdili  · 技术社区  · 6 年前

    我被教导说一个空的 except 捕获所有类型的异常,但当我尝试此代码块时,它不会捕获异常并引发 SyntaxError . 我做错什么了?

    try:
        print "Hello"
    except:
        print("Caught!")  #output: SyntaxError: Missing parentheses in call to 'print'. Did you mean print("Hello")?
    

    即使我将异常类型指定为 语法错误 它还是抓不住。

    try:
        print "Hello"
    except SyntaxError:
        print("Caught!") #output: SyntaxError: Missing parentheses in call to 'print'. Did you mean print("Hello")?
    
    1 回复  |  直到 6 年前
        1
  •  3
  •   Daniel Roseman    6 年前

    不,空的除了捕获所有类型的 运行时 错误;根据定义,语法错误不是运行时错误,因为代码根本不能运行。