La gestione degli errori è sempre un problema in un’applicazione complessa e se il programmatore non è diligente con il trap degli errori ci si può trovare ad avere problemi incontrollabili.
Su Instant Developer Foundation essendo il codice scritto in un metalinguaggio, che poi viene tradotto in C#, Java o JavaScript, il frame work quando genera i sorgenti aggiunge i try catch necessari e ogni errore che si verifica viene trappato e visualizzata una videata standard di errore.
Poi è possibile utilizzare l’evento di applicazione OnException dove posso fare cose.
Su Instant Developer Cloud come posso realizzare la stessa cosa?
Esiste il metodo App.setExceptionHandler() che posso utilizzare per realizzare una gestione errori personalizzata.
Nell’evento onStart dell’applicazione aggiungo questo codice:
App.setExceptionHandler(app, function (error) {
app.eccezioniNonGestite(error, function (result, error) {});
});
Il metodo app.eccezioniNonGestite() può essere semplicemente questo:
console.log("PG - exception", exception);
//
if (!!exception) {
let e = exception.exception;
console.log("PG - e", e);
yield app.popup({type : "alert", title : "Attenzione si è verificato un errore non previsto!", subtitle : e.message, message : e.stack, buttons : ["Ok"]});
}
Questo è naturalmente un esempio molto semplificato ma che dovrebbe rendere l’idea di come implementarlo seriamente.