On Wed, 12 Jan 2011 17:59:43 +0100, "Vittorio Zuccala'" <vittorio.zucc...@gmail.com> wrote: > Salve a tutti, > dopo qualche mese di programmazione in python mi sto cimentando sulla > gestione delle eccezioni nella scrittura di un modulo. > Vi scrivo perchè vorrei un parere di "stile"... > > Dato che il mio modulo "csr" è piuttosto affollato, ho pensato di creare > un > file delle sole eccezioni a parte (ha un senso come scelta?).
Se un modulo e' affollato devi fare un package, non ha senso avere solo un modulo di eccezioni, "sibling" del modulo che lo usa. Gestire due moduli fianco a fianco e' piu' difficile che gestire un package. Per me ha senso avere un modulo di errori in un package un po' piu' che banale ma non ha senso creare un modulo di errori da riciclare per diversi script: la definizione delle eccezioni e' piccola, c'e' poco codice da duplicare; invece l'accoppiamento tra modulo di errori e chi lo usa e' massimo, quindi modificarlo diventa un campo minato. Fai attenzione a importare il modulo sempre con il percorso assoluto pero', perche' se da qualche parte usi import assoluti: from miopackage import errori e in un modulo dentro miopackage usi un import relativo: import errori rischi di importare il modulo due volte distinte, col risultato di avere le classi di errore duplicate e un "except ErroreValore" finirebbe col funzionare misteriosamente a volte si e a volte no. > from csrErrori import * Mi sembra tu voglia usare un modulo esterno allo script. Come detto questo secondo me crea problemi. Se usi un modulo interno puoi evitare il prefisso e col nome piu' corto non ti viene la tentazione di usare * from csr import errori raise errori.ErroreValore('pippo') > class elaboraInformazioni(object): > """Classe di prova""" > def __init__(self): > try: > raise ErroreValore("pippo") > except ErroreValore,ex: > print "Errore " + ex.valore > pass > > L'output è quello che mi aspetto: Errore pippo > E' corretta come impostazione? Qui si', la cosa piu' delicata e' imparare quando usare eccezioni "personali" e *perche'* usarle. Usarle solo perche' hai scoperto una feature fica e la vuoi usare a tutti i costi e' solo parzialmente ok :) Qui avevo scritto ad un tizio un esempio di uso delle eccezioni custom, che e' il modo in cui mi regolo di solito: http://stackoverflow.com/questions/497952/how-to-make-python-gracefully-fail/498038#498038 > L'idea è quella di creare questo file delle eccezioni (csrErrori) da > implementare di volte in volta per l'azienda dove vado a pescare i vari > errori che mi servono. Come detto mi aspetto che questo ti creera' piu' problemi che vantaggi. -- Daniele Varrazzo - Develer S.r.l. http://www.develer.com _______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python