欢迎访问宙启技术站
智能推送

Python中的异常处理函数及语法

发布时间:2023-06-02 04:08:29

Python中的异常处理函数是用来捕获和处理错误的工具。它们由一些内置函数和语句构成,包括try、except、raise、finally等。本文将介绍Python中的异常处理函数及其语法。

try / except

try / except是Python中最常用的异常处理函数之一。它用于在可能出错的代码块进行异常捕获。

语法:

try:
  #可能出错的代码块
except error_type:
  #处理 error_type 类型的异常

示例:

try:
  a = int(input("请输入一个整数:"))
  print(10 / a)
except ZeroDivisionError:
  print("不可输入 0")
except ValueError:
  print("输入内容必须是整数")

在上面的示例中,我们将尝试将用户输入的值转换为整数,并计算10除以该数字的结果。如果用户输入0,则会引发一个ZeroDivisionError异常,并显示“不可输入0”。如果用户输入的不是数字,则会引发ValueError异常,并显示“输入内容必须是整数”。

try / except / else

try / except / else结构是try / except的升级版,它还包括一个else语句块,该语句块包含在try语句块中的所有代码执行完毕后运行。else语句块的功能是在没有发生异常的情况下执行某些代码。

语法:

try:
  #可能出错的代码块
except error_type:
  #处理 error_type 类型的异常
else:
  #没有异常时要执行的代码

示例:

try:
  a = int(input("请输入一个整数:"))
  print(10 / a)
except ZeroDivisionError:
  print("不可输入 0")
except ValueError:
  print("输入内容必须是整数")
else:
  print("计算完毕")

在上面的示例中,如果用户输入的数字可以被10整除,那么就不会抛出异常。在这种情况下,else语句块将会执行,打印出“计算完毕”。

try / except / finally

try / except / finally是try / except的另一种变体,它还包括一个finally语句块,该语句块包含在try语句块末尾,无论代码块是否出现异常都将被执行。finally语句块通常用于清理代码块中的资源。

语法:

try:
  #可能出错的代码块
except error_type:
  #处理 error_type 类型的异常
finally:
  #无论发生什么都要执行的代码

示例:

try:
  a = int(input("请输入一个整数:"))
  print(10 / a)
except ZeroDivisionError:
  print("不可输入 0")
except ValueError:
  print("输入内容必须是整数")
finally:
  print("计算结束")

在上面的示例中,不管用户输入了什么,try / except语句块都会执行,try / except /finally语句块也将执行。这将打印出“计算结束”。

raise

raise语句可以引发一个异常,它的作用是指明异常类型和错误消息。

语法:

raise error_type("error message")

示例:

try:
  raise ValueError("无效输入")
except ValueError as e:
  print(e)

在上面的示例中,我们使用raise关键字引发了一个ValueError类型的异常,并将其消息设置为“无效输入”。当它被捕获时,display_exception()将打印异常消息。

用户自定义异常

如果Python自带的异常类不能满足我们的需要,我们可以使用自定义异常类。我们创建一个继承自Python内置的Exception类的类,并在其中添加自己的方法和属性。

示例:

class MyException(Exception):
  def __init__(self, message):
      self.message = message
      
  def __str__(self):
      return self.message

在上面的示例中,我们定义了一个名为MyException的自定义异常类,它继承自Python内置的Exception类。我们添加了一个带有“ message”参数的构造函数,并覆盖了Exception类中的__str__()方法以返回错误消息。

在代码中使用自定义异常:

try:
  raise MyException("这是一个自定义异常")
except MyException as e:
  print(e)

在上面的示例中,我们使用raise关键字引发了一个自定义的MyException异常类的实例,并将其消息设置为“这是一个自定义异常”。当它被捕获时,MyException类中的__str__()方法产生的字符串将被打印。

总结

try / except是Python中的异常处理机制的核心。 在可能发生错误的代码块中使用try语句,并将各种异常类型与相应的except语句一起使用,可以在不中断程序的情况下处理错误。使用else语句可以在没有异常时执行一些代码,使用finally语句可以清理资源,最后,我们可以使用raise语句引发自定义异常来指示错误。 使用Python中的异常处理函数,可以让我们的程序更加健壮和可靠。