Python的异常参数

发布时间:2022-01-07 09:55:23 人气:431 作者:多测师

  一个异常可以带上参数,可作为输出的异常信息参数

  你可以通过except语句来捕获异常的参数,如下所示:

  try:

  正常的操作

  ......................

  except ExceptionType, Argument:

  你可以在这输出 Argument 的值...

  变量接收的异常值通常包含在异常的语句中。在元组的表单中变量可以接收一个或者多个值。

  元组通常包含错误字符串,错误数字,错误位置。

  实例

  以下为单个异常的实例:

  #!/usr/bin/python

  # -*- coding: UTF-8 -*-

  # 定义函数

  def temp_convert(var):

  try:

  return int(var)

  except ValueError, Argument:

  print "参数没有包含数字\n", Argument

  # 调用函数

  temp_convert("xyz");

  以上程序执行结果如下:

  $ python test.py

  参数没有包含数字

  invalid literal for int() with base 10: 'xyz'

  触发异常

  我们可以使用raise语句自己触发异常

  raise语法格式如下:

  raise [Exception [, args [, traceback]]]

  语句中Exception是异常的类型(例如,NameError)参数是一个异常参数值。该参数是可选的,如果不提供,异常的参数是"None"。

  最后一个参数是可选的(在实践中很少使用),如果存在,是跟踪异常对象。

Python的异常参数

  实例

  一个异常可以是一个字符串,类或对象。 Python的内核提供的异常,大多数都是实例化的类,这是一个类的实例的参数。

  定义一个异常非常简单,如下所示:

  def functionName( level ):

  if level < 1:

  raise Exception("Invalid level!", level)

  # 触发异常后,后面的代码就不会再执行

  注意:为了能够捕获异常,"except"语句必须有用相同的异常来抛出类对象或者字符串。

  例如我们捕获以上异常,"except"语句如下所示:

  try:

  正常逻辑

  except "Invalid level!":

  触发自定义异常

  else:

  其余代码

  实例

  #!/usr/bin/python

  # -*- coding: UTF-8 -*-

  # 定义函数

  def mye( level ):

  if level < 1:

  raise Exception("Invalid level!", level)

  # 触发异常后,后面的代码就不会再执行

  try:

  mye(0) // 触发异常

  except "Invalid level!":

  print 1

  else:

  print 2

  执行以上代码,输出结果为:

  $ python test.py

  Traceback (most recent call last):

  File "test.py", line 11, in

  mye(0)

  File "test.py", line 7, in mye

  raise Exception("Invalid level!", level)

  Exception: ('Invalid level!', 0)

  用户自定义异常

  通过创建一个新的异常类,程序可以命名它们自己的异常。异常应该是典型的继承自Exception类,通过直接或间接的方式。

  以下为与RuntimeError相关的实例,实例中创建了一个类,基类为RuntimeError,用于在异常触发时输出更多的信息。

  在try语句块中,用户自定义的异常后执行except块语句,变量 e 是用于创建Networkerror类的实例。

  class Networkerror(RuntimeError):

  def __init__(self, arg):

  self.args = arg

  在你定义以上类后,你可以触发该异常,如下所示:

  try:

  raise Networkerror("Bad hostname")

  except Networkerror,e:

  print e.args

  以上内容为大家介绍了Python的异常参数,希望对大家有所帮助,如果想要了解更多Python相关知识,请关注多测师。https://www.e70w.com/xwzx/

返回列表
在线客服
联系方式

热线电话

17727591462

上班时间

周一到周五

二维码
线