Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
При возникновении исключения выполнение останавливается и управляется соответствующим обработчиком исключений. Это часто означает, что строки кода, которые вы ожидаете выполнить, обходятся. Очистка некоторых ресурсов, например закрытие файла, должна выполняться даже при возникновении исключения. Для этого можно использовать finally
блок.
finally
Блок всегда выполняется независимо от того, создается ли исключение.
В следующем примере кода используется блок try
/catch
для перехвата ArgumentOutOfRangeException. Метод Main
создает два массива и пытается скопировать один на другой. Действие создает ArgumentOutOfRangeException так как length
указано как -1, и ошибка записывается в консоль. Блок finally
выполняется независимо от результата действия копирования.
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