Scopo
Ritorna la descrizione dell'eccezione che si è verificata in un blocco try-catch.
Sintassi
try {...}
catch
{
string s = "" //
//
s := ErrorMessage()
}
catch
{
string s = "" //
//
s := ErrorMessage()
}
Valore di ritorno
Viene ritornata una stringa che contiene il messaggio di errore generato dall'eccezione.
Esempio di codice
// ****************************************************************************
// Evento notificato al documento durante le fasi iniziali della procedura di
// salvataggio dei documenti
// ****************************************************************************
event OggettoFS.BeforeSave(
inout boolean Skip // Parametro di output booleano. ...
inout boolean Cancel // Parametro di output booleano. ...
int Phase // E' un numero intero da 0 a 3 che indica ...
)
{
string NomeCompleto = "" // Quali dati memorizzerai qui?
//
NomeCompleto := GetNamedPropertyValue("NomeCompleto")
//
Skip := True
//
// Se sono nella fase di inserimento e l'oggetto è inserito
if Phase = 1 AND Inserted
...
//
// Se sono nella fase di aggiornamento e l'oggetto è modificato
if Phase = 2 AND Updated AND NOT(Inserted)
{
// Se è cambiato il nome
if GetOriginalValue(ToPropertyIndex(Nome)) <> Nome
...
//
// Se è cambiato il contenuto
if GetOriginalValue(ToPropertyIndex(Contenuto)) <> Contenuto
{
// Provo a salvare il file
try
{
int FileNumber = 0 //
//
// Ottengo un identificativo di file libero
FileNumber := FreeFile()
//
// Salvo il file
EsempiMS.OpenFileForOutput(NomeCompleto, FileNumber)
EsempiMS.WriteLine(FileNumber, Contenuto)
EsempiMS.CloseFile(FileNumber)
}
catch
{
this.AddDocumentError("impossibile salvare il file. " + ErrorMessage())
Cancel := True
}
}
}
}
// Evento notificato al documento durante le fasi iniziali della procedura di
// salvataggio dei documenti
// ****************************************************************************
event OggettoFS.BeforeSave(
inout boolean Skip // Parametro di output booleano. ...
inout boolean Cancel // Parametro di output booleano. ...
int Phase // E' un numero intero da 0 a 3 che indica ...
)
{
string NomeCompleto = "" // Quali dati memorizzerai qui?
//
NomeCompleto := GetNamedPropertyValue("NomeCompleto")
//
Skip := True
//
// Se sono nella fase di inserimento e l'oggetto è inserito
if Phase = 1 AND Inserted
...
//
// Se sono nella fase di aggiornamento e l'oggetto è modificato
if Phase = 2 AND Updated AND NOT(Inserted)
{
// Se è cambiato il nome
if GetOriginalValue(ToPropertyIndex(Nome)) <> Nome
...
//
// Se è cambiato il contenuto
if GetOriginalValue(ToPropertyIndex(Contenuto)) <> Contenuto
{
// Provo a salvare il file
try
{
int FileNumber = 0 //
//
// Ottengo un identificativo di file libero
FileNumber := FreeFile()
//
// Salvo il file
EsempiMS.OpenFileForOutput(NomeCompleto, FileNumber)
EsempiMS.WriteLine(FileNumber, Contenuto)
EsempiMS.CloseFile(FileNumber)
}
catch
{
this.AddDocumentError("impossibile salvare il file. " + ErrorMessage())
Cancel := True
}
}
}
}
Questa funzione è da utilizzare esclusivamente dentro un blocco CATCH, poichè ha proprio il compito di restituire il messaggio dell'eccezione generata.
Ultima modifica: 06/04/2022 / Validità: da 7.0.3200