[Python] raise end exception

Gollum1 gollum1.smeagol1 a gmail.com
Mer 25 Apr 2018 11:38:36 CEST


Ciao Lista,

   nel mio programmino voglio gestire alcuni errori, e mi piacerebbe
farlo sollevando delle eccezioni, che siano poi catturate e gestite
dal pezzo di codice che richiama la funzione in oggetto (così mi evito
di passare un return None, che non è effettivamente quello che vorrei
restituire, visto che None potrebbe essere interpretato nel codice non
come errore, ma come valore effettivo).

COme mi conviene procedere? Io non sto facendo uso delle classi, è
sufficiente il seguente codice:

if im.format == 'JPEG' or im.format == 'MPO':
    extension = ".jpg"
else:
    raise Exception(FormatUnsupported, "il file %s è nel formato %s,
attualmente non gestito" % (source, im.format))

oppure devo obbligatoriamente creare una classe che eredito dalla
classe exception?

nell'esecuzione mi ritrovo il modulo PIL che in alcune situazioni non
alza una eccezione, ma ritorna una stringa di errore, come la
seguente:

/usr/lib/python3/dist-packages/PIL/TiffImagePlugin.py:756:
UserWarning: Corrupt EXIF data.  Expecting to read 12 bytes but only
got 4.
  warnings.warn(str(msg))

il codice non viene interrotto (non essendo una eccezione) e non posso
quindi gestire l'errore in modo diverso...

esiste una qualche metodologia per creare anche in questo caso una
exception che sia sollevata con raise?

Grazie.

-- 
Gollum1 - http://www.gollumone.it
Tesssssoro, dov'é il mio tessssoro...


Maggiori informazioni sulla lista Python