Shadow TH Опубликовано 15 февраля, 2010 Жалоба Поделиться Опубликовано 15 февраля, 2010 Здравствуйте, уважаемые форумчане. Изучением Си-Шарпа начал заниматься относительно недавно. Есть вопрос по поводу обработки исключений. В VB был оператор: On Error Resume Next который было достаточно поставить в самом начале функции, чтобы в случае возникновения ошибки программа пропускала ошибочный оператор и продолжала работу дальше. Хотелось быть уточнить, есть ли что-нибудь подобное в C#? Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Lion HC Опубликовано 15 февраля, 2010 Жалоба Поделиться Опубликовано 15 февраля, 2010 try{}catch{}finally{} Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Shadow TH Опубликовано 17 февраля, 2010 Автор Жалоба Поделиться Опубликовано 17 февраля, 2010 (изменено) try{}catch{}finally{} А где какой код должен быть? Как я понял, в теле try должен быть сам код, а, поскольку обрабатывать никакие исключения не нужно, остальные операторы - catch и finally должны быть пустыми, так что ли? Изменено 17 февраля, 2010 пользователем Shadow TH Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Lion HC Опубликовано 17 февраля, 2010 Жалоба Поделиться Опубликовано 17 февраля, 2010 Из справки к 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 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.