Gestione errori

From SageDev KB
Revision as of 10:56, 28 January 2020 by Mwadmin (talk | contribs)
Jump to navigation Jump to search


In caso di errori a run time l'esecuzione del processo in Sage si interrompe; per evitare un'interruzione bisogna gestire adeguatamente i possibili errori con l'istruzione Onerrgo e Resume.
Ecco un esempio di come gestire gli errori:

Local Integer EXCEPTION # per gestione errori imprevisti
EXCEPTION=0
Local Integer VALORE
Onerrgo MANAGE_EXCEPTION #inizio blocco Try:imposto delegato per la gestione di un eventuale errore
VALORE=41/0              #questa operazione va in errore (divisione per zero)
                         #il programma salta su $OPENERR, dove imposta EXCEPTION=1

    If EXCEPTION=0       #se non ci sono errori
       ...
    Else                 #se c'è un errore
      ...
    Endif
EXCEPTION=0              #blocco Finally
Onerrgo                  #azzero il riferimento a programma di gestione errore


$MANAGE_EXCEPTION
   #Gestisco errore...
   #Se qui si mette End:
   # il programma termina
   #- se c'è TRANSAZIONE in corso, questa viene ANNULLATA in automatico
   Infbox "Errore calcolo: divisione per zero"
   EXCEPTION=1            #blocco Catch
Resume

Mettendo Resume il programma continua con l'istruzione successiva al punto in cui c'è stato l'errore; mettendo End invece di Resume il programma termina del tutto. Vedere l'help per tutte le funzioni correlate (Errn,Errp...)


Altro

  • Errp: programma che ha generato l'errore
  • Errl: riga del programma che ha generato l'errore
  • Errn: codice dell'errore
  • ErrMes$: messaggio d'errore
  • Errm: seconda parte del messaggio d'errore