Shadow TH Posted February 15, 2010 Report Share Posted February 15, 2010 Здравствуйте, уважаемые форумчане. Изучением Си-Шарпа начал заниматься относительно недавно. Есть вопрос по поводу обработки исключений. В VB был оператор: On Error Resume Next который было достаточно поставить в самом начале функции, чтобы в случае возникновения ошибки программа пропускала ошибочный оператор и продолжала работу дальше. Хотелось быть уточнить, есть ли что-нибудь подобное в C#? Quote Link to comment Share on other sites More sharing options...
Lion HC Posted February 15, 2010 Report Share Posted February 15, 2010 try{}catch{}finally{} Quote Link to comment Share on other sites More sharing options...
Shadow TH Posted February 17, 2010 Author Report Share Posted February 17, 2010 (edited) try{}catch{}finally{} А где какой код должен быть? Как я понял, в теле try должен быть сам код, а, поскольку обрабатывать никакие исключения не нужно, остальные операторы - catch и finally должны быть пустыми, так что ли? Edited February 17, 2010 by Shadow TH Quote Link to comment Share on other sites More sharing options...
Lion HC Posted February 17, 2010 Report Share Posted February 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 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.