Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Quando si verifica un'eccezione, l'esecuzione arresta e il controllo viene assegnato al gestore eccezioni appropriato. Ciò significa spesso che le righe di codice che si prevede di eseguire vengono ignorate. È necessario eseguire alcune operazioni di pulizia delle risorse, ad esempio la chiusura di un file, anche se viene generata un'eccezione. A tale scopo, è possibile usare un finally blocco. Un finally blocco viene sempre eseguito, indipendentemente dal fatto che venga generata un'eccezione.
Nell'esempio di codice seguente viene usato un blocco try/catch per intercettare un ArgumentOutOfRangeException. Il Main metodo crea due matrici e tenta di copiarne una nell'altra. L'azione genera un ArgumentOutOfRangeException perché length viene specificato come -1 e l'errore viene scritto nella console. Il finally blocco viene eseguito indipendentemente dal risultato dell'azione di copia.
class ArgumentOutOfRangeExample
{
public static void Main()
{
int[] array1 = {0, 0};
int[] array2 = {0, 0};
try
{
Array.Copy(array1, array2, -1);
}
catch (ArgumentOutOfRangeException e)
{
Console.WriteLine($"Error: {e}");
throw;
}
finally
{
Console.WriteLine("This statement is always executed.");
}
}
}
Class ArgumentOutOfRangeExample
Public Shared Sub Main()
Dim array1() As Integer = {0, 0}
Dim array2() As Integer = {0, 0}
Try
Array.Copy(array1, array2, -1)
Catch e As ArgumentOutOfRangeException
Console.WriteLine("Error: {0}", e)
Throw
Finally
Console.WriteLine("This statement is always executed.")
End Try
End Sub
End Class