Precedente Indice Successiva

Accenno alle eccezioni

Immagine slide
  • Il programma appena scritto ha un inconveniente
  • Dato che usa un cast int(<testo>) per convertire il dato inserito, se il dato non è un intero, lancia un'eccezione che chiude la finestra
  • Ovviamente dovremo gestirla tramite un blocco try-catch (try-except in Python):
    try:
    numero = int(testo)
    except ValueError:
    numero = 0
  • Nell'istruzione except abbiamo indicato ValueError, che è l'eccezione lanciata, vista nell'errore
  • Possiamo avere più clausole except per diverse eccezioni.
  • Possiamo anche avere più eccezioni gestite da una sola except, indicando un set di eccezioni, racchiuso tra parentesi
  • Possiamo intercettare qualsiasi eccezione utilizzando Error nell'istruzione except
  • Ecco il codice completo:
    import simplegui
    def azione():
    testo = campo.get_text()
    try:
    numero = int(testo)
    except ValueError:
    numero = 0
    numero += 1
    campo.set_text(numero)
    def nonazione(testo):
    pass
    finestra = simplegui.create_frame("Finestra", 50, 150)
    campo = finestra.add_input("Scrivi un numero intero", nonazione, 50)
    finestra.add_button("Incrementa", azione)
    finestra.start()
© Ing. Stefano Salvi - released under FDL licence

Valid XHTML 1.0! Valid CSS!