Jump to content
СофтФорум - всё о компьютерах и не только

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


Recommended Posts

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

On Error Resume Next

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

Link to comment
Share on other sites

try{}catch{}finally{}

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

Edited by Shadow TH
Link to comment
Share on other sites

Из справки к 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

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...