Эта статья является зеркальной статьёй машинного перевода, пожалуйста, нажмите здесь, чтобы перейти к оригиналу.

Вид: 21123|Ответ: 0

[Источник] Исключения и обработка исключений (Руководство по программированию на C#)

[Скопировать ссылку]
Опубликовано 12.04.2015 22:22:03 | | |

Функция обработки исключений языка C# помогает справляться с неожиданными или необычными ситуациями, возникающими во время работы вашей программы. Обработка исключений использует ключевые слова try, catch и, наконец, чтобы попробовать определённые операции и обрабатывать сбои, и хотя эти операции могут привести к неудаче, вы можете попробовать, если уверены, что это нужно и хотите очистить ресурсы после этого. Среда выполнения общего языка (CLR), . NET Framework или любая сторонняя библиотека или код приложения может создавать исключения. Исключения создаются с помощью ключевого слова throw.
Во многих случаях исключения могут возникать не методом, вызываемым напрямую кодом, а другим способом ниже по стеку вызовов. В этом случае CLR расширяет стек, чтобы проверить, содержит ли блок захвата для конкретного типа исключения, и если он находит такой метод, выполняет первый найденный такой блок. Если в стеке вызовов не найдено соответствующего блока catch, процесс завершается, и пользователю отображается сообщение.
В этом примере используется метод для определения ситуации, когда он делится на ноль; Если она есть, ошибка фиксируется. Если нет обработки исключений, программа завершит работу и выдаст ошибку «DivideByZeroException Not Handled».
  1. class ExceptionTest
  2. {
  3.     static double SafeDivision(double x, double y)
  4.     {
  5.         if (y == 0)
  6.             throw new System.DivideByZeroException();
  7.         return x / y;
  8.     }
  9.     static void Main()
  10.     {
  11.         // Input for test purposes. Change the values to see
  12.         // exception handling behavior.
  13.         double a = 98, b = 0;
  14.         double result = 0;

  15.         try
  16.         {
  17.             result = SafeDivision(a, b);
  18.             Console.WriteLine("{0} divided by {1} = {2}", a, b, result);
  19.         }
  20.         catch (DivideByZeroException e)
  21.         {
  22.             Console.WriteLine("Attempted divide by zero.");
  23.         }
  24.     }
  25. }
Копирование кода






Предыдущий:C# определяет, содержит ли строка символ
Следующий:Узнайте, создан ли сайт программой форума Discuz
Отказ:
Всё программное обеспечение, программные материалы или статьи, публикуемые Code Farmer Network, предназначены исключительно для учебных и исследовательских целей; Вышеуказанный контент не должен использоваться в коммерческих или незаконных целях, иначе пользователи несут все последствия. Информация на этом сайте взята из Интернета, и споры по авторским правам не имеют отношения к этому сайту. Вы должны полностью удалить вышеуказанный контент с компьютера в течение 24 часов после загрузки. Если вам нравится программа, пожалуйста, поддержите подлинное программное обеспечение, купите регистрацию и получите лучшие подлинные услуги. Если есть нарушение, пожалуйста, свяжитесь с нами по электронной почте.

Mail To:help@itsvse.com