Intercettare un runtime error

di
Anonimizzato19830
il
6 risposte

Intercettare un runtime error

Salve a tutti
in Delphi Pascal esiste un modo per intercettare un runtime error?
Più o meno come nell'esempio proposto (che tuttavia non funziona con le nuove versioni di Delphi Pascal), nel quale, in caso di qualsiasi errore runtime, si crea un file con il numero di errore, utile per capire meglio cosa è successo.
Grazie in anticipo!

var vecchiaexit :pointer;
{$F+} procedure miaexit;  {$F+}
begin
  if not (erroraddr=nil) then
  begin
    if exitcode<>0 then
    begin
       assignfile(testoerr,'file_errore.txt');
       rewrite(testoerr);
       writeln(testoerr,'ERRORE NON RECUPERABILE: ',exitcode);
       closefile(testoerr);
    end;
    exitproc:=vecchiaexit;
    erroraddr:=nil;
  end;
end;
Con l'inizializzazione:
vecchiaexit:=exitproc;
exitproc:=@miaexit;

6 Risposte

  • Re: Intercettare un runtime error

    http://www.delphibasics.co.uk/RTL.asp?Name=tr
  • Re: Intercettare un runtime error

    D'accordo.
    Ma se, in un listato di migliaia di linee, non so assolutamente dove può essersi verificato l'errore, c'è un altro metodo che mi consenta di avere il codice del runtime error?
    L'errore che tento di stanare è molto aleatorio; a volte si verifica, altre no e non sembra essere un classico... (in un windows 7, forse un po' bacato, addirittura faceva ripartire il sistema! Ora, con il 10, il SO non salta più ma il programma a volte si chiude senza dare informazioni)
  • Re: Intercettare un runtime error

    Questa e' TUTTA un'altra storia.
    Non uso Delphi da una vita, quindi non mi ricordo se nell'eccezzione c'e' anche il callstack.
    Se non c'e', ti tocca andare di log ed in modo iterativo, cercando, ad ogni passo, di isolare la zona di codice coinvolta, e poi perche' avviene.
    Non mi risulta esistano altri metodi miracolosi.
    Spiacente
  • Re: Intercettare un runtime error

    Grazie.
    Almeno ora so... di che debugging devo morire;-)
  • Re: Intercettare un runtime error

    PS: ho trovato questo link forse interessante:
    http://www.jirihajek.net/delphi/ExceptLog.ht
  • Re: Intercettare un runtime error

    Eurekalog
Devi accedere o registrarti per scrivere nel forum
6 risposte