Qual è la differenza tra un'eccezione e l'intercettazione di un'eccezione?

December 20

In alcuni linguaggi di programmazione, come C ++ e Java, un'eccezione - abbreviazione di "evento eccezionale" - è un evento che sconvolge la normale esecuzione di un programma. "Un'eccezione" si riferisce alla creazione di un oggetto, noto come un oggetto eccezione, e passando un componente software noto come un sistema di runtime che è stato progettato per supportare l'esecuzione dei programmi per computer. "Facendo un'eccezione" si riferisce a passare l'eccezione di un blocco di codice, noto come un gestore di eccezioni, che tenta di recuperare l'evento anomalo.

Cause di eccezioni

In generale, gli errori di programmazione, errori di codice cliente e le eccezioni errore della risorsa motivo di essere gettati. In genere, poco può essere fatto su errori di programmazione, almeno non in termini di gestione delle eccezioni, ma se un programma tenta di eseguire alcune operazioni illegali, per quanto riguarda l'interfaccia di programmazione delle applicazioni è interessato un gestore di eccezioni può essere in grado di adottare misure di recupero. Allo stesso modo, se il sistema esaurisce la memoria o di una connessione di rete non riesce durante l'esecuzione del programma, un gestore di eccezioni può ritentare l'esecuzione dopo un tempo o accedere al fallimento e fermare l'esecuzione.

eccezione Object

Un metodo è un blocco di codice che può essere chiamato per nome in qualsiasi punto in un programma per computer. Quando si verifica un errore all'interno di un metodo, il codice che ha causato l'errore interrompe l'esecuzione immediata, crea un oggetto eccezione e lo passa al sistema runtime. L'oggetto eccezione contiene il tipo di errore causato e lo stato del programma quando si è verificato l'errore.

Lanciare eccezioni

Le eccezioni possono essere definiti in una delle librerie standard del linguaggio di programmazione o definiti dal programmatore. Nelle ex eccezioni casi vengono gettati automaticamente dal sistema, mentre nel secondo caso eccezioni sono esplicitamente programmati con un'istruzione throw; la sintassi della dichiarazione tiro è semplicemente "eccezione-oggetto tiro:" Se c'è modo ragionevole per gestire un errore esistente al punto del programma in cui si verifica l'errore, si rende spesso senso per un programma di gettare deliberatamente un errore in quel punto .

Facendo eccezioni

Dopo viene generata un'eccezione, il sistema runtime tenta di trovare un blocco di codice in grado di gestire l'eccezione - in altre parole, un gestore di eccezioni appropriata - nello stack di chiamate. Lo stack di chiamate è un elenco dei metodi che il programma chiamato fino al punto in cui si è verificato l'errore nell'ordine in cui sono stati chiamati. Se il sistema di runtime trova un gestore di eccezioni del caso, il controllo passa a quel blocco di codice. In caso contrario, il sistema runtime e il programma terminano. Se il sistema runtime fa trovare un gestore di eccezioni, esegue il blocco di codice per gestire l'eccezione e continua a eseguire il resto del programma normalmente.