【问题标题】:understanding "try" and "except" python理解“尝试”和“除外”python
【发布时间】:2015-07-29 06:36:48
【问题描述】:

据我所知,到目前为止,计算机将尝试运行 try 部分中的代码,并将除了部分中提到的内容之外。一旦计算机得到了除了代码之外的东西,它就会运行。

所以,我尝试了以下方法:

try:
    if year // 100:
        print year, "is not a leap year"

    else:
        print year, "is not a leap year"


 except year // 400  and year // 4:
        print "is a leap year"

这不起作用。

我想知道为什么会这样?

【问题讨论】:

  • 除了只捕获异常,它不像if/else
  • 你的意思是它捕获了在尝试部分不可能的东西。 @AnandSKumar
  • 您可能想阅读tutorial on try..except
  • 不幸的是,您对 Python 中 try/except 如何工作的理解是不正确的。 try/except 的目的是捕获和处理异常,这是一种特定类型的对象,每当 Python 遇到错误时都会抛出。 Try/except 不能像您尝试的那样用于任意操纵控制流。
  • @Michael0x2a 哦,好吧。我得到了它。谢谢

标签: python python-2.7 try-except


【解决方案1】:

请阅读the doc

try 语句的工作原理如下。

  • 首先,执行 try 子句tryexcept 关键字之间的语句)。
  • 如果未发生异常,则跳过except 子句,并完成try 语句的执行。
  • 如果在 try 子句执行期间发生异常,则跳过该子句的其余部分。然后如果它的类型匹配异常 以 except 关键字命名,执行 except 子句,并且 然后在try 语句之后继续执行。
  • 如果发生与 except 子句中指定的异常不匹配的异常,则将其传递给外部try 语句;如果不 找到处理程序,它是一个未处理的异常并且执行停止 带有如上所示的消息。

【讨论】:

    【解决方案2】:

    基本上,try and except 就像 if 和 else...有点

    除了当你 try 没有引发异常时,它会执行 try 代码块,但是当它失败时,它将执行 except 块,例如

    a = [1,2,3,4,"hello"]
    
    for i in a:
        try:
            print(i)
            i + 1
    
        except:
            print("nope " + i  + " is a string")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-05-24
      • 2021-03-07
      • 2013-02-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-17
      相关资源
      最近更新 更多