Компьютерные книги
Главное меню
Главная Поиск по сайту Добавить материал О нас Карта книг Карта сайта
Реклама
computersbooks.net -> Добавить материал -> Языки программирования -> Ватсон К. -> "С#" -> 75

С# - Ватсон К.

Ватсон К. С# — Лори, 2005 . — 879 c.
ISBN 1-861004-98-2
Скачать (прямая ссылка): vatsonc2005.pdf
Предыдущая << 1 .. 69 70 71 72 73 74 < 75 > 76 77 78 79 80 81 .. 404 >> Следующая


О'

г , ______

|t . |

ChOTExSl.exefChOTExOl.dKsl.MainfstmeO args *• ^Length-0)-) Lino 15 + fob bytos

* Cnp7Ex0t .ete'Ch07E>01.Cls«l.Ma4i-rta(rl()i'.te.;e« = {Urtcih- 12}, n([] in6:ri геЛ) Line26

Это окно особенно полезно в тех случаях, когда ошибка уже обнаружена, поскольку оно позволяет увидеть, что происходило непосредственно перед се возникновением, Если ошибка находится в часто используемых функциях, то это помогает определить ее причину.

Необходимо учитывать, что в этом окне может оказаться совершенно непонятная информация. Иногда ошибки происходят вне нашего приложения, например, в результате неправильного использования внешних функций. В таких случаях в этом окне может оказаться длинный список вхождений, из ко?порых только одно или два окажутся вам знакомы.

Обработка ошибок

Первая часть данной главы была посвящена способам поиска н исправления ошибок в процессе разработки приложения, направленным на то, чтобы исключить их появление в окончательном варианте программы. Существуют, однако, ситуации, когда заранее известно, что ошибки могут возникать, и способа добиться 100% -ной уверенности в их отсутствии не существует. В таких случаях рекомендуется заранее предусмотреть возникновение проблем и написать такой код, который мог бы аккуратно с ними справиться без прекращения выполнения приложения.

Обработка ошибок — это общее название всех способов такого рода; в данном разделе будту рассмотрены возникновение исключительных ситуаций (exceptions) и методы работы с ними.

Исключительные ситуации

Исключительная ситуация — это ошибка, возникшая либо и нашем коде, либо в вызванной нашим кодом функции, которая проявилась в период выполнения. В данном случае термин “ошибка" имеет более широкое значение, чем до сих пор, поскольку исключительные ситуации могут создаваться в функциях и т. п. вручную.
Отладка и обработка ошибок

151

Напрнмер, мы можем создать исключительную ситуацию в функции в том случае, если один из ее строковых параметров не начинается с символа "а". Строго говоря, вне контекста настоящей функции это ошибкой не является, хотя с точки зрения кода, вызывающего данную функцию, это, безусловно, ошибка.

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

inti] myArray = [1, 2, Э, 4};

int nyElem =¦ my Array [4] i

В результате появится приведенное ниже сообщение о исключительной ситуации, а выполнение приложения будет прекращено:

An unhandled exception of type 'System.IndexOutOfRangeException' occurred in <ff/e>.exe

(Необрабатываемая исключительная ситуация типа

‘System.IndexOufOfRangeException', возникшая в <файя>.ехе)

Здесь <файя> — это имя файла, в котором содержится данная исключительная ситуация.

Исключительные ситуации описаны в пространствах имен, и большинство из них обладает именами, из которых становится ясно, для чего они предназначены. В нриведениом примере возникшая исключительная ситуация имеет название System.IndexOutOfRangeException (“исключительная ситуация: выход индекса из диапазона допустимых значений"), что совершенно верно, поскольку мы задали индекс, который не входит в диапазон допустимых значений для массива myftrray.

Появление сообщения и завершение выполнения приложения происходит только в тех случаях, когда исключительная ситуация является необрабатываемой. А что требуется сделать для того, чтобы можно было “обработать" исключительную ситуацию?

try...catch...finally

В языке программирования C# предусмотрен специальный'синтаксис для Structured Exception Handling (SEH — структурированной обработки исключительных ситуаций). Существуют специальные ключевые слова, позволяющие помечать участки кода как участки, в которых допустима обработка исключительных ситуаций, и размещать инструкции, указывающие, что следует делать при возникновении исключительной ситуации. Для этих целей используются три ключевых слова: try, catch и finally. Каждому нз них соответствует некоторый блок кода, и все они должны помещаться в последовательно расположенных строках кода. Основная конструкция имеет следующий вид:

try

atch (<тж1Исклх>чительнойСитуацтп е)

finally
152

Глава 7

Существует также возможность использовать блоки try и finally без блока catch, а также блок try с несколькими блоками catch. Если имеется один или несколько блоков catch, то блок finally является необязательным, в противном случае ои обязателен.

Эти блоки используются следующим образом:

? try содержит код, который может привести к возникновению исключительной ситуации.

? catch содержит код, который должен выполняться в случае позннкновення исключительной ситуации. Блоки catch могут быть настроены таким образом, чтобы реагировать только на одни конкретный тип исключительной ситуации (напрнмер, на

System. IndexOutOfRangeException), для чего используется параметр <типИскш>чительнойСитугщкн>, ПОСКОЛЬКУ существует ВОЗМОЖНОСТЬ
Предыдущая << 1 .. 69 70 71 72 73 74 < 75 > 76 77 78 79 80 81 .. 404 >> Следующая
Книги
Web-программирован-
ие
Аппаратное обеспечение Графика Руководство по П.О. Самоучитель Теория программирования Фотошоп Языки программирования
Новые книги
Вирт Н. "Систематическое программирование " (Теория программирования)

Эком "Microsoft Excel 2000 шаг за шагом Русская версия самоучитель " (Самоучитель)

Поляков А.Ю. "Методы и алгоритмы компьютерной графики в примерах Vizual C++" (Графика)

Баяковский Ю.М. "Графическая библиотека Open GL " (Графика)

Валиков А. "Технология " (Языки программирования)
Авторские права © 2013 ComputersBooks. Все права защищены.