Więc chcę wiedzieć, który jest właściwy sposób wypróbować, z wyjątkiem instrukcji. Jestem nowy w obsłudze błędów w Pythonie.Jak używać spróbuj, z wyjątkiem, w przeciwnym razie poprawnie w Python
Wariant 1
try:
itemCode = items["itemCode"]
dbObject=db.GqlQuery("SELECT * FROM %s WHERE code=:1" % dbName,itemCode).get()
dbObject.delete()
except AttributeError:
print "There's no item with that code"
except KeyError:
print "Bad parameter name"
except:
print "Unknow error"
Wariant 2
try:
itemCode = items["itemCode"]
except KeyError:
print "Bad parameter name"
else:
dbObject=db.GqlQuery("SELECT * FROM %s WHERE code=:1" % dbName,itemCode).get()
try:
dbObject.delete()
except AttributeError:
print "There's no item with that code"
except:
print "Unknow error"
Wariant 3 Wszelkie inne lepszym rozwiązaniem można myśleć.
Opcja 1, widzimy, że zawijam cały kod w bloku try. Opcja 2, wykorzystuje zagnieżdżone bloki. Podnosi wyjątek w odniesieniu do określonych instrukcji linii.
Jeśli pojawi się błąd, chętnie się o tym dowiem.
Nie w pełni rozumiem twoje pytanie. Wydaje mi się, że twoim głównym problemem jest zrozumienie, jak próbujesz, z wyjątkiem tego, że w końcu działa. Czy to jest poprawne? Jeśli tak, mogę podać przykład, który to wyjaśnia. – inspectorG4dget
@ inspectorG4dget - Wydaje mi się, że pytanie dotyczy mniej tego, jak działają (oba przykłady są prawidłowe) i pytania o preferencje stylistyczne. –
Nie rozumiem, dlaczego usuwasz obiekt w bloku '' try: '' i '' else: '', czy brakuje mi czegoś lub czy to nie ma sensu? –