Python的异常参数

2023-12-13 1:08:19网络知识匿名

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

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

try:

正常的操作

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

exceptExceptionType,Argument:

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

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

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

实例

以下为单个异常的实例:

#!/usr/bin/python

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

#定义函数

deftemp_convert(var):

try:

returnint(var)

exceptValueError,Argument:

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

#调用函数

temp_convert("xyz");

以上程序执行结果如下:

$pythontest.py

参数没有包含数字

invalidliteralforint()withbase10:'xyz'

触发异常

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

raise语法格式如下:

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

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

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

实例

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

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

deffunctionName(level):

iflevel<1:

raiseException("Invalidlevel!",level)

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

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

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

try:

正常逻辑

except"Invalidlevel!":

触发自定义异常

else:

其余代码

实例

#!/usr/bin/python

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

#定义函数

defmye(level):

iflevel<1:

raiseException("Invalidlevel!",level)

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

try:

mye(0)//触发异常

except"Invalidlevel!":

print1

else:

print2

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

$pythontest.py

Traceback(mostrecentcalllast):

File"test.py",line11,in

mye(0)

File"test.py",line7,inmye

raiseException("Invalidlevel!",level)

Exception:('Invalidlevel!',0)

用户自定义异常

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

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

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

classNetworkerror(RuntimeError):

def__init__(self,arg):

self.args=arg

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

try:

raiseNetworkerror("Badhostname")

exceptNetworkerror,e:

printe.args

以上内容为大家介绍了Python的异常参数,希望对大家有所帮助,如果想要了解更多Python相关知识,请关注IT培训机构:瀚银百科。http:////

发表评论: