Перейти к содержанию
СофтФорум - всё о компьютерах и не только

Исключения в C#


Рекомендуемые сообщения

Здравствуйте, уважаемые форумчане. Изучением Си-Шарпа начал заниматься относительно недавно. Есть вопрос по поводу обработки исключений. В VB был оператор:

On Error Resume Next

который было достаточно поставить в самом начале функции, чтобы в случае возникновения ошибки программа пропускала ошибочный оператор и продолжала работу дальше. Хотелось быть уточнить, есть ли что-нибудь подобное в C#?

Ссылка на комментарий
Поделиться на другие сайты

try{}catch{}finally{}

А где какой код должен быть? Как я понял, в теле try должен быть сам код, а, поскольку обрабатывать никакие исключения не нужно, остальные операторы - catch и finally должны быть пустыми, так что ли?

Изменено пользователем Shadow TH
Ссылка на комментарий
Поделиться на другие сайты

Из справки к VS 2008:

Блок finally позволяет освободить все ресурсы, выделенные в блоке try, а также выполнить код, который должен выполняться даже в случае возникновения исключения. Управление всегда передается блоку finally независимо от того, как была завершена обработка блока try.

Заметки

Если для обработки исключений, происходящих в блоке инструкций используется блок catch, то блок finally позволяет гарантировать, что определенный набор инструкций будет выполнен независимо от того, как был осуществлен выход из блока try.

Пример

В этом примере содержится одна недопустимая инструкция преобразования, вызывающая исключение. При запуске программы появляется сообщение об ошибке во время выполнения, однако блок finally все равно будет выполнен и будет выведен результат.

// try-finallyusing System;public class MainClass{static void Main(){	int i = 123;	string s = "Some string";	object o = s;	try	{		// Invalid conversion; o contains a string not an int		i = (int)o;	}	finally	{		Console.Write("i = {0}", i);	}}}

Примечания

В приведенном выше примере произойдет исключение System.InvalidCastException.

Хотя исключение и было перехвачено, инструкция вывода в блоке finally все равно будет исполнена, т. е. на экран будет выведена строка:

i = 123

Ссылка на комментарий
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...