Per continuare nella spiegazione fatta da leo, ricordo che l'oggetto Error viene aggiornato ogni qualvolta viene eseguita una qualsiasi istruzione.
Per spiegare le indicazioni di leo, l'utilizzo di una variabile per salvare lo stato di Error è obbligatorio, a causa del fatto che poi viene chiamato un metodo/funzione che obbliga l'interprete a gestire un qualsiasi errore che possa essere scatenzato dalla chiamata e, ovviamente, questo resetta i dati nell'oggetto statico Error.
Un appunto:
a suo tempo avevo studiato l'oggetto Error, in modo da gestire gli errori di un'applicazione da un unico punto, ovvero una classe specializzata a loggare gli errori, più o meno come fanno tutti gli altri linguaggi.
Purtroppo, l'implementazione di questa classe (Error) limita molto questa cosa...
Mi sono poi accorto che è possibile farlo solo con un'altro oggetto statico, ad esempio la classe Application, con cui è possibile definire dei metodi, altrettanto statici, a cui passare dei dati personalizzati di errore e, all'interno di questi, salvare e gestire le proprietà di Error, senza che queste vengano resettate dalla chiamata al metodo statico. In pgDesigner questa cosa è stata implementata, e successivi studi mi hanno permesso di creare anche classi specializzate nel logging (su file, a video, messaggi, ecc.).
L'unica cosa che non ho potutto fare è quella di concentrare la gestione degli errori applicativi in un solo punto, questo a causa della mancanza di alcune necessarie informazioni per poter ripristinare il corso applicativo (ovvero riprendere da dove si è fermato).