代码之家  ›  专栏  ›  技术社区  ›  ray

在try-except之后使用“else”块的目的是什么?

  •  -1
  • ray  · 技术社区  · 6 年前

    案例1 sd 设置为45

    try:
        raise ValueError()
        sd = 45
    except(OSError): 
        sd = 50
    else:
        sd = 23
    

    案例2 :异常由处理 except

    try:
        raise ValueError()
        sd = 45
    except(ValueError): 
        sd = 50
    else: 
        sd = 23
    

    :如果未发生错误,则将执行else& sd

    try:
        sd = 45
    except(ValueError): 
        sd = 50
    else: 
        sd = 23
    

    我们始终希望我们的代码能够正常工作&若抛出错误,则应处理该错误。但为什么呢 else 在这里扮演一个角色,若try块中的代码并没有错误,那个么运行这个。

    如果我误解、遗漏或指示错误,请提出建议。

    1 回复  |  直到 6 年前
        1
  •  1
  •   syntaqx    6 年前

    https://docs.python.org/3/tutorial/errors.html -这里有一个完整的章节:

    try-except语句有一个可选的else子句,当该子句出现时,必须在所有except子句之后。如果try子句没有引发异常,那么它对于必须执行的代码非常有用。。。。

    @编辑 else 就是当你做了你认为 错误(例如,打开一个可能不存在的文件),您可以将使用该文件的代码放入 其他的 声明而不是内部 try ,这样可以避免捕获未由用户引发的异常 尝试 声明(即,如果在使用文件时出现与打开文件完全无关的问题怎么办?)