Python 异常中的用户定义和内置参数

Python 异常中的用户定义和内置参数,python,exception,Python,Exception,执行以下代码时不会打印参数(即:不允许被零除)。它只提供来自的内置错误消息- 零误差。那么,当内置错误消息可用时,用户定义参数的用途是什么呢 print "Enter the dividend" dividend=input() print "Enter the divisor" divisor=input() try: result=dividend/divisor except "ZeroDivisonError",argument: print "Divide by Ze

执行以下代码时不会打印参数(即:不允许被零除)。它只提供来自的内置错误消息- 零误差。那么,当内置错误消息可用时,用户定义参数的用途是什么呢

print "Enter the dividend"
dividend=input()
print "Enter the divisor"
divisor=input()

try:
    result=dividend/divisor
except "ZeroDivisonError",argument:
    print "Divide by Zero is not permitted \n ",argument # Argument not getting printed
else:   
    print "Result=%f" %(result)

让你的特例正常工作:

dividend=int(input("Enter the dividend: "))
divisor=int(input("Enter the divisor: "))

try:
    result=dividend/divisor
except Exception,argument:
    print "Divide by Zero is not permitted \n ",str(argument) # Argument not getting printed
else:   
    print "Result=%f" %(result)
如果您想定义自己的异常,请按照以下方式操作:

# Define a class inherit from an exception type
class CustomError(Exception):
    def __init__(self, arg):
        # Set some exception infomation
        self.msg = arg

try:
    # Raise an exception with argument
    raise CustomError('This is a CustomError')
except CustomError, arg:
    # Catch the custom exception
    print 'Error: ', arg.msg
您可以在此处找到此模板:

ZeroDivisionError”的拼写不正确,而且不应在“”中。 正确的行:

    except ZeroDivisionError,argument:
    print "Divide by Zero is not permitted \n ",argument

请适当地格式化您的代码,这不是异常和异常处理的工作方式。
除了“ZeroDivisionError”,参数
是无效的Python。@Rogalski:它是有效的,只是绝对不是您想要做的。重复的?它现在可以工作了。ZeroDivisionError中除法的拼写错误!。但在修正之后,参数现在被打印出来了。ZeroDivisionError并没有什么问题,但他在行中写的是一个字符串。这应该是Exception类中的对象,而不是字符串。@Lingboatag print也接受对象并打印它们successfully@frist同样,print()也没有问题。但是,他用来抛出异常的语法不正确。@Butters如果你想接受这个答案,可以单击复选标记。