📜  Python异常处理(1)

📅  最后修改于: 2023-12-03 15:19:33.298000             🧑  作者: Mango

Python 异常处理

异常(Exception)是程序在运行过程中出现错误的一种情况。Python 提供了处理异常的机制,使得程序可以在出现异常时进行恰当的处理,避免程序因错误而奔溃。

异常处理语法

在 Python 中,使用 try...except 语句进行异常处理。

try:
    # 可能出现异常的代码
except 异常类型1:
    # 异常1的处理代码
except 异常类型2:
    # 异常2的处理代码
else:
    # 无异常情况下的处理代码
finally:
    # 无论是否出现异常,都会执行的代码

try 语句块中,放置可能出现异常的代码。在 except 语句块中,针对不同的异常类型,分别放置相应的处理代码。如果 try 语句块中的代码导致异常,Python 会寻找与异常类型对应的 except 语句块,并执行其中的处理代码。如果没有对应的 except 语句块处理对应的异常类型,则将异常向上抛出,由上层代码进行处理。如果没有异常发生,则会执行 else 语句块中的代码。无论是否出现异常,finally 语句块中的代码都会执行。

异常类型

except 语句块中,需要指定处理的异常类型。常见的异常类型有:

  • Exception:所有异常的基类。
  • AttributeError:对象没有这个属性。
  • IOError:输入输出异常。
  • IndexError:下标越界。
  • KeyError:字典中没有这个键。
  • NameError:未声明/初始化对象。
  • SyntaxError:语法错误。
  • TypeError:类型不匹配。
  • ValueError:值不匹配。
示例

以下是一个简单的示例,演示 try...except 的使用。

try:
    x = int(input("Please enter a number: "))
    y = 100 / x
    print(y)
except ZeroDivisionError:
    print("Cannot divide by zero")
except ValueError:
    print("You must input a number")
except:
    print("Unknown error")
else:
    print("No exception occurred")
finally:
    print("End of the program")

输出:

Please enter a number: 0
Cannot divide by zero
End of the program
总结

异常处理是程序设计中重要的一部分。使用 try...except 语句可以避免程序因为异常而崩溃,保证程序的正常运行。在处理异常时,需要根据实际情况选择合适的异常类型,并编写相应的处理代码。