Sono uno sviluppatore Java che c'è di nuovo a Python e sto riscrivendo una classe Java come classe Python. Sto cercando di imitare il flusso della classe originale nella mia classe Python, per quanto possibile. La classe Java ha poche righe con,fa Python hanno un equivalente Java di throw new Exception ("testo qui")
if(condition)
throw new Exception("text here")
Ho cercato sul Python documentation for exceptions e non sono stato in grado di trovare un Python equivalente alla sintassi Java.
Ho provato qualcosa (penso che è vicino) con raise Exception("text here")
leggendo questo StackOverflow post ma sembra come se questo è per l'uso all'interno di un blocco try
except
e causerà un salto dal try
blocco al blocco except
; E sto cercando di evitare le try
except
blocchi e solo un'eccezione.
Una soluzione Credo che potrebbe funzionare è questo,
try:
if(condition):
raise Exception("text here")
except:
...
Ma mi piacerebbe sapere se c'è un approccio più strettamente legato all'approccio Java in modo da poter mantenere la maggior quantità di flusso possibile (farli sembrare simili).
'raise' è come' throw'; 'try' è come' try'. Non * devi * aggiungere un blocco 'try' per usare le eccezioni in Python. – Ryan
L'eccezione Java fa esattamente la stessa cosa: salta al blocco di cattura più vicino o produce la traccia dello stack :) Prova a dire "tranne: passa" e guarda cosa succede. – Ashalynd
Si noti che è possibile derivare le proprie eccezioni: https://docs.python.org/2/tutorial/errors.html#user-defined-exceptions –