2010-03-31 5 views

risposta

9

Non esiste un equivalente diretto. Solitamente ValueError o TypeError è sufficiente, forse un RuntimeError o NotImplementedError se nessuno di quelli si adatta bene.

4

probabilmente sarei andare tra una delle due opzioni:

  1. A eccezione personalizzata, meglio definito come segue:

    class InvalidOperationException(Exception): pass

  2. Usando solo Exception

Non credo ci sia un analogo diretto; Python sembra avere una gerarchia di eccezioni molto piatta.

2

sarò in parte d'accordo con Chris R - definire il proprio:

 class InvalidOperationException(Exception): pass 

Si ottiene molto beneficio dal definire le proprie eccezioni in questo modo, tra cui la costruzione di una gerarchia per soddisfare le vostre esigenze:

 class MyExceptionBase(Exception): pass 
    class MyExceptionType1(MyExceptionBase): pass 
    class MyExceptionType2(MyExceptionBase): pass 
    # ... 
    try: 
     # something 
    except MyExceptionBase, exObj: 
     # handle several types of MyExceptionBase here... 

Non sono d'accordo con il lancio di una "eccezione" nuda, però.