[Python] raise end exception
Gollum1
gollum1.smeagol1 a gmail.com
Mer 25 Apr 2018 15:03:00 CEST
Il 25 aprile 2018 12:10, Gollum1 <gollum1.smeagol1 a gmail.com> ha scritto:
>> 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))
>>
>
> no, questo non funziona, nel senso che crea una exception generica di
> tipo "exception:", quindi tropo generico...
> Mi sa che l'unica soluzione sia quello di creare la classe derivata...
ok... a qui può interessare:
class Error(Exception):
"""Base class for exceptions in this module."""
pass
class UnsupportedFormat(Error):
"""Exception raised for errors in the input.
Attributes:
expression -- input expression in which the error occurred
message -- explanation of the error
"""
def __init__(self, message):
self.message = message
nella procedura dove prelevo i dati:
if im.format == 'JPEG': # or im.format == 'MPO':
extension = ".jpg"
else:
raise UnsupportedFormat("il file %s è nel formato %s, attualmente
non gestito" % (source, im.format))
nella procedura che ha richiamato il prelievo dei dati:
try:
get_exif_data(args)
except UnsupportedFormat as err:
print(err)
return
e questo è l'output del programma quando incamera un file non
conforme, senza bloccare il programma, saltando solamente il file:
il file /home/mauro/Destinazione/SONY/DSCHX50V/5184x3888/20160527T143229_(002).mpo
è nel formato MPO, attualmente non gestito
che è quello che volevo ottenere...
Non so invece come viene gestito l'errore di PIL, che segnala il
messaggio, ma non alza una eccezione, e quindi non è gestibile.
Byea
--
Gollum1 - http://www.gollumone.it
Tesssssoro, dov'é il mio tessssoro...
Maggiori informazioni sulla lista
Python