Python 2 - Grafica - 9

# Accenno alle eccezioni

- 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