2016-01-13 27 views
5

Esiste un metodo che è possibile chiamare per uscire da una procedura nidificata che uscirà anche dalla procedura proprietario/genitore?Esiste un metodo Exit per uscire da una procedura nidificata e la sua procedura del proprietario?

procedure OwnerProc; 

    procedure NestedProc; 
    begin 
     // Do some code here 

     EXIT_ALL; {Call a method which will exit NestedProc and OwnerProc} 
    end; 

begin 
    NestedProc; 
end; 
+0

Si desidera conoscere * Eccezioni *. – Roddy

+0

O semplicemente cambialo da una Procedura a una Funzione e restituisce un Booleano. è quindi possibile verificare se il risultato è stato falso ed uscire dalla procedura principale –

+3

Se prendo letteralmente EXIT_ALL, un 'Halt;' farebbe il lavoro;) - Avviso: utilizzare solo in circostanze eccezionali. – mjn

risposta

10

Esiste un metodo che si potrebbe chiamare per uscire dall'interno di una procedura di nidificato che sarà anche uscire dalla procedura di proprietario/genitore?

No, non c'è.

È possibile generare un'eccezione e catturarla nella funzione esterna. Ma personalmente lo considererei piuttosto brutto. Forse è più pulito restituire un valore booleano dalla funzione interna e quindi exit se la funzione interna restituisce False.

+0

Ah mi ha battuto :-) –

+0

Grazie David. Uso i risultati booleani ma speravo che esistesse un metodo esistente per eseguire un ExitAll. –