首页 > 编程 > Python > 正文

python的中异常处理机制

2020-02-15 22:51:21
字体:
来源:转载
供稿:网友

什么是异常处理

定义:异常处理就是我们在写Python时,经常看到的报错信息,例如;NameError TypeError ValueError等,这些都是异常。

异常是一个事件,改事件会在程序执行过程中发生,影响程序的正常执行,一般情况下,在python中无法处理程序时就会发生异常,异常时Python的一个对象,表示一个错误,当Python脚本发生异常时,我们需要捕获并处理异常,否则程序就会终止执行。

Python 使用被称为 异常 的特殊对象来管理程序执行期间发生的错误。每当发生让 Python 不知所措的错误时,它都会创建一个异常对象。如果你编写了处理该异常的代码,程序将继续运行;如果你未对异常进行处理,程序将停止,并显示一个 traceback ,其中包含有关异常的报告。异常是使用 try-except 代码块处理的。 try-except 代码块让 Python 执行指定的操作,同时告诉 Python 发生异常时怎么办。使用了 try-except 代码块时,即便出现异常,程序也将继续运行:显示你编写的友好的错误消息,而不是令用户迷惑的 traceback 。

处理ZeroDivisionError异常

下面来看一种导致 Python 引发异常的简单错误。你可能知道不能将一个数字除以 0 ,但我们还是让 Python 这样做吧:

print(5/0)

报错:

Traceback (most recent call last):
  File "test.py", line 2, in <module>
    print(5/0)
ZeroDivisionError: integer division or modulo by zero

使用 try-except 代码块

当你认为可能发生了错误时,可编写一个 try-except 代码块来处理可能引发的异常。你让 Python 尝试运行一些代码,并告诉它如果这些代码引发了指定的异常,该怎么办。

处理 ZeroDivisionError 异常的 try-except 代码块类似于下面这样:

try:  print(5/0)except ZeroDivisionError:  print("You can't divide by zero!")# You can't divide by zero!

如果 try-except 代码块后面还有其他代码,程序将接着运行,因为已经告诉了 Python 如何处理这种错误。

使用异常避免崩溃

发生错误时,如果程序还有工作没有完成,妥善地处理错误就尤其重要。这种情况经常会出现在要求用户提供输入的程序中;如果程序能够妥善地处理无效输入,就能再提示用户提供有效输入,而不至于崩溃。

创建一个只执行除法运算的简单计算器:

print("Give me two numbers, and I'll divide them.")print("Enter 'q' to quit.")while True:  first_number = input("/nFirst number: ")  if first_number == 'q':    break  second_number = input("Second number: ")  try:    answer = int(first_number) / int(second_number)  except ZeroDivisionError:    print("You can't divide by 0!")  else:    print(answer)            
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表