Читаем C# 4.0 полное руководство - 2011 полностью

Console.WriteLine("nums[{0}]:    {1}",    i,    nums[i]);

}

Console.WriteLine("He подлежит выводу");

}

/* Если перехват рассчитан на исключение DivideByZeroException, то перехватить ошибку нарушения границ массива не удастся. */ catch (DivideByZeroException) {

// Перехватить исключение.

Console.WriteLine("Индекс вышел за границы массива!");

}

Console.WriteLine("После блока перехвата исключения.");

}

}

Вот к какому результату приводит выполнение этой программы.

До генерирования исключения.

nums[0]: О

nums[1]: 1

nums[2]: 2

nums[3]: 3

Необработанное исключение: System.IndexOutOfRangeException:

Индекс находился вне границ массива в ExcTypeMismatch.Main в<имя_файла>:строка 18

Как следует из приведенного выше результата, в блокеcatch,реагирующем на исключениеDivideByZeroException,не удалось перехватить исключениеIndexOutOfRangeException.

Обработка исключительных ситуаций - “изящный” способ устранения программных ошибок

Одно из главных преимуществ обработки исключительных ситуаций заключается в том, что она позволяет вовремя отреагировать на ошибку в программе и затем продолжить ее выполнение. В качестве примера рассмотрим еще одну программу, в которой элементы одного массива делятся на элементы другого. Если при этом происходит деление на нуль, то генерируется исключениеDivideByZeroException.Обработка подобной исключительной ситуации заключается в том, что программа уведомляет об ошибке и затем продолжает свое выполнение. Таким образом, попытка деления на нуль не приведет к аварийному завершению программы из-за ошибки при ее выполнении. Вместо этого ошибка обрабатывается "изящно", не прерывая выполнение программы.

// Изящно обработать исключительную ситуацию и продолжить выполнение программы.

using System;

class ExcDemo3 {

static void Main {

int[]    numer    =    {    4,    8,    16, 32, 64,    128 };

int[]    denom    =    {    2,    0,    4, 4, 0,    8    };

for(int i=0; i < numer.Length; i++)    {

try {

Console.WriteLine(numer[i]    +    " / M +

denom[i]    +    м равно M +

numer[i]/denom[i]);

}

catch (DivideByZeroException) {

// Перехватить исключение.

Console.WriteLine("Делить на нуль нельзя!");

}

}

}

}

Ниже приведен результат выполнения этой программы.

4/2 равно 2

Делить на нуль нельзя!

16/4 равно 4 32/4 равно 8 Делить на нуль-нельзя!

128 / 8 равно 16

Перейти на страницу:

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных