2016-07-15 9 views
-1

Der folgende Code führt bei der Ausführung nicht dazu, dass ein Argument gedruckt wird (d. H .: Dividieren durch Null ist nicht zulässig). Es gibt nur eingebaute Fehlermeldung von ZeroDivisionError. Also, was ist die Verwendung von benutzerdefinierten Argumenten, wenn in Fehlermeldungen eingebaut sind.Benutzerdefiniert und eingebaut Argumente in Ausnahmen

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) 
+0

Bitte Format Code entsprechend – Tonechas

+0

Das ist nicht, wie Ausnahmen und Ausnahmebehandlung Arbeit. –

+0

'außer" ZeroDivisonError ", Argument ist ungültig Python. –

Antwort

0

Die Schreibweise von "ZeroDivisonError" ist falsch und sollte nicht i sein n "". Richtige Linie:

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

Machen Sie Ihre Exception generic Werke:

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) 

Und wenn Ihr wollen Sie Ihre eigenen Ausnahme definieren, folgen auf diese Weise:

# 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 

Sie diese Vorlage finden Sie hier: Proper way to define python exceptions

+0

Was ist los mit ZeroDivisionError? – frist

+0

Es funktioniert jetzt. Die Schreibweise der Division in ZeroDivisonError ist falsch !. Aber nachdem es behoben wurde, wird das Argument jetzt gedruckt. – Butters

+0

Es ist nichts falsch mit ZeroDivisionError, aber was er in Zeile schrieb, ist eine Zeichenfolge. Dies sollte ein Objekt aus der Exception-Klasse sein, keine Zeichenfolge. –

Verwandte Themen