Domanda

Ho notato che EStackOverflow, come definito in SysUtils.pas, è contrassegnato come obsoleto in Delphi 2009. Ho verificato ed è stato anche contrassegnato come obsoleto nel 2007. Ho un disco di installazione di Delphi 7 qui, ma ho pensato di chiedere se qualcuno sa quando è stato deprecato.

Inoltre, qualcuno sa perché e cosa lo sostituisce? Ho scritto un'applicazione di test che causa uno Stack Overflow attraverso la ricorsione e ottengo ancora un'eccezione EStackOverflow, ma se aggiungo un gestore specifico per esso ottengo

  

[Avviso DCC] Unit57.pas (85): il simbolo W1000 'EStackOverflow' è obsoleto

So che EStackOverflow discende da EExternal e che potrei intercettare EExternal e controllare ExceptionCode per STATUS_STACK_OVERFLOW, ma ciò sembra inutile poiché genera ancora l'eccezione EStackOverflow.

È solo per scoraggiarmi dal lanciare un EStackOverflow nel mio codice?

(Sì, mi rendo conto dell'ironia di porre una domanda su EStackOverflow su un sito web chiamato StackOverflow e sì Sono completamente serio .)

È stato utile?

Soluzione

Non ho D5 qui da dire, ma ricordo a malapena la direttiva deprecata è apparso solo su D6.

Per quanto riguarda l'eccezione StackOverflow, penso che sia obsoleto perché è solo per l'ambiente di runtime Delphi a sollevarlo.

EDIT: basato sull'aggregazione di tutte le risposte, EStackOverflow è stato deprecato in Delphi 6 quando è stata introdotta la parola chiave obsoleta.

Altri suggerimenti

Proprio come in .NET, non riesci davvero a cogliere un'eccezione StackOverflow, in cosa ripristini? Molto probabilmente il tuo codice è sbagliato se devi prenderne uno :)

Ho appena controllato il mio Delphi 6 e EStackOverflow è già obsoleto. Non ho accesso alle versioni precedenti di Delphi qui.

Non posso aiutarti con il perché o l'eventuale sostituzione.

In Delphi 5 non è ancora deprecato.

modifica: in realtà, in Delphi 5, "deprecato" non è una parola riservata.

  

È solo per scoraggiarmi dal lanciare un EStackOverflow nel mio codice?

Ancora più importante, penso che questo significhi che non dovresti progettare il codice per dipendere dal fatto che venga lanciato nelle versioni future.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top