Автор Тема: Исключения - Обработка ошибок  (Прочитано 1991 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Июнь 22, 2013, 02:42:55 am
Прочитано 1991 раз

Mimi Neko

  • Администратор
  • Старожил форума

  • Оффлайн
  • *****

  • 2456
  • Репутация:
    153
    • Просмотр профиля
Исключения - обработка ошибок в C#


Вот допустим, есть переменная X типа int (или  какого-то другого):

int X = 0;

И в неё ожидался приём содержимого другой некой переменной Y.
X = Y;

Но вдруг, в переменной Y, оказалось совсем несовместимое с переменной X содержимое, другого типа.
- В результате, возникнет ошибка, способная вывести из строя приложение.
Конечно, этио пример упрощённый, но могут быть и другие, более сложные, например, у нас есть некий список, или массив, и мы обращаемся к несуществующему элементу...

 - Хороший программист, обязан предусмотреть заранее такие ситуации, и поместить теоретически ненадёжные операции, в специальную конструкцию:

try{
  действия, потенциально способные вызвать крэш нашей программы
}
catch{ действия, выполняемые в качестве альтернативы}

С нашей переменной можно поступить так:
try{
  X = Y;
}
catch{ X = 0; }//Если содержимое Y не может быть присвоено X

 - Вот и всё!  :)  Ошибку мы даже не увидим, и приложение не упадёт.
 В catch можно разумеется, разместить и отчёт об возникшей критической ситуации, выводимый в лог, или обработать возникшую ошибку, каким-либо другим путём.

Однако, по неуточнённым пока данным, применение таких конструкций, может сказаться  на производительности.
Так что не стоит ими сильно злоупотреблять там, где важна скорость выполнения, например в onGUI() и UPDATE().
А вот в функции загрузки каких-либо данных из файлов, папок, получению чего-либо через интернет или от клиента, применение данной конструкции, будет вполне оправдано.

Подробнее: http://msdn.microsoft.com/ru-ru/library/0yd65esw.aspx
« Последнее редактирование: Июнь 26, 2013, 05:36:48 am от Mimi Neko »

Июнь 26, 2013, 05:46:57 am
Ответ #1

Mimi Neko

  • Администратор
  • Старожил форума

  • Оффлайн
  • *****

  • 2456
  • Репутация:
    153
    • Просмотр профиля
throw

Оператор throw используется для сообщения о случаях аномальных ситуаций (исключений) в ходе выполнения программы, а так же  для создания явных исключений.



http://msdn.microsoft.com/ru-ru/library/1ah5wsex.aspx
http://msdn.microsoft.com/ru-ru/library/xhcbs8fz.aspx


finally - окончательная обработка исключения.
Например, если блок catch не помог,  то в блоке finally можно как бы финализировать этот процесс.

« Последнее редактирование: Май 25, 2015, 12:30:27 pm от Mimi Neko »