[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