Один класс создает исключение, другой его обрабатывает в момент создания класса неизвестно, как с ним будут работать. Иногда действия пользователей становятся источником проблемы. Именно в этих сиутациях возникают исключения. обработка исключений - Разумеется, дывает и такое, что один метод может формировать исключение, которое ликвидируется другим методом этого же класса. Вам нужно заранее понять, что может пойти не так, и предусмотреть план перехвата. Вы обычно не видите, какой метод создает исключение, а какой устраняет его. Это, как правило, различные методы, принадлежащие различным объектам. Конструктор обьекта BeeProfile Вместо того, чтобы... Без обработки исключений программа перестает работать. Вот что происходит в программе управления профилями пчел. ожидает имя содержащего профиль пчелы, чтобы открыть его методом File.OpenQ. Если файл не открывается, программа перестает работать. stream = File.Open(profile); FilelMotFoundException was unhandled Unable to find the specified Яе. ^ HW® Обьект BeeProfile пы т ает - ^ С Я читать от сут ст вую и^иеы .^ " У \ файл, поэтому метод File. OpenQ информирует об исключении. В программе о т внимание, как обьект сутствует блок catch, поэтому исключение остается необработанным. Y / 1^ередачи в улей. ...мы можем поступить так. Объект ВееРго£11е может перехватить исключение и добавить запись об этом в журнал. Затем исключение вызывается повторно и передается в улей для обработки. try { prof = new BeeProfile("prof.dat") } catch (FileNotFoundException) { Hive.RecreateBeeProfile("prof.dat } ■ ^ ^ n f i le ( " p r o f .d a t " 4 ^ О Теперь try { stream = File.Open(profile); } catch (FileNotFoundException ex) { WriteLogEntry("unable to find " + profile + ": " + ex.Message0; throw; } при попытке улья создать обьект 8ееРгоР((е, передав неверное имя файла, бцдет сделана запись об ошибке и появится моби^ение об исключении. Улей сможет обработать исключение, на пример, пут ем . создания файла с профилем пчелы. дальше > 477
ваше собственное исключение исключение OutOfHoney для пчел Методы показывают таков исключение при некорректных значениях параметров. Ваши классы могут формировать собственные исключения. Например, при получении внутри метода параметра null вместо ожидаемого значения имеет смысл использовать исключение, которое вызывает в такой ситуации .NET: Message StackTrace Exception GetBaseExceptionO ToStringO throw new ArgumentException(); ^ Ho иногда исключение требуется из-за особых обстоятельств, возникающих в процессе работы программы. Например, количество меда, потребляемого пчелой, зависит от ее веса. Но для ситуации, когда меда в улье не осталось, имеет смысл создать собственное исключение. Для этого потребуется класс, наследующий от класса Exception. c l a s s O u tO fH o n ey E x cep tio n : S y s t e m .E x c e p t io n { your Exception StackTrace GetBaseExceptionO ToStringO p i i b l i c O u t O fH o n e y E x c e p tio n ( s tr in g m e s s a g e ) : b a s e ( m e s s a g e ) { } } Для вашего исключения потребуется класс, c l a s s H o n e y D e liv e r y S y s te m { который должен быть производным по от - ^ ношению к классу System.Exception. Обратите внимание, каким образом перегружается , конструктор, чтобы передать соотцение об p u b l i c v o i d F eedH oneyT oE ggs О { исключении. } i f (h o n e y L e v e l ==0) { th r o w new O u tO fH o n e y E x c e p tio n ( "The h i v e i s o u t o f h o n e y ." ) ; ) . 1 . . ( ,— Вызывается новый экземпляр обьf o r e a c h (E gg e g g i n E g g s) { “ ) При наличии в ульТ '^"' except/on. p u b l i c p a r t i a l c l a s s F orm l : Form { С ‘исключение не J ‘появляется и управление передается этому коду. p r i v a t e v o i d c o n s u m e H o n e y _ C lic k (o b je c t s e n d e r , E v e n tA r g s e ) { H o n e y D e liv e r y S y s te m d e l i v e r y = new H o n e y D e liv e r y S y s te m ( ) ; t r y { } d e l i v e r y . F eedH oneyT oE ggs () илля пользоват&льского
Изучаем Управляй д
ББК 32.973.2-018.1 УДК 004.43
оглавление Оо д е р
оглавление э щ о Бс
оглавление гоипь! и
оглавление н а с л е
оглавление п е р е ч
оглавление обр>або
оглавление и т1реДБ
оглавление Метод з
к а к р а б о з з а а ш
введение Mbl знаем, о
введение Метапозна
Что мо)кете сделать
введение информаци
введение Благодарн
с c# это легко Зачем
помогите начальник
ваша цель Ч т о мы с
приступим Э то Вы д
изучи ИСР Возьми в
лучше один раз увид
экономим ресурсы Vis
запуск приложения (
сохраните, чтобы по
хранить данные лег
оформим в таблицу П
это именно мой тип
добавляем данные П
все данные в одном
соединим все вмест
сделаем красиво Хо
напоследок Тестиро
поделитесь любовью
быстрее не бывает У
к вашим услугам Ког
средства коммуника
ваш маленький помо
подробности Любые
программа делает з
еще более подробно
элегантные решения
время получить отв
решение упражнения
параметры могут ва
операторы наготове
прекратим ошибки! О
приготовились, нас
то, что вы можете сд
выше и выше и выше и
если только, но тол
ваш код... теперь в в
симпатично! п'ражне
решение упражнения
это не такой просто
решение ребуса е Ш
майк ищет работу Ч
создаем методы и ре
знакомство с объек
про экземпляры Объ
объекты совершенст
немножко маленьких
слово static |Л о зьм и
как дела у объектов
складываем объекты
зачем нужны методы
классы как они есть
несколько советов
создадим класс Воз
работающий класс guy
джо говорит: «где м
объекты, по порядку
объекты, по порядку
объекты, по порядку
не мои тип Tun переме
взять деньги на мор
приведения Приведе
настоящее преобраз
таблица зарезервир
что-то пошло не так.
операторы наготове
получи ссылку Пере
вот водитель мусор
так много меток їоз
Возьми 8 руку каран
держи ссылку Дбе сс
выбираем объект из
джо говорит: «не ст
болтливые объекты
возьми в руку каран
магниты с кодом и р
создадим что-нибуд
ключ к прекрасной и
решение упражнения
решение ребуса е Ш
помогите кэтлин Кэ
ok, нет проблем нени
решение упражнения
что-то пошло не так
неожиданно оказало
защити свои объект
шпионское противос
сохранить секрет З
простор для вообра
путаница у майка Пр
как лучше провести
читаем, записываем,
частная собственно
настройки Редактир
разбираем конструк
что в имени? r|Jo3bM H В
инкапсуляция предо
решение упражнения
с днем рождения, кр
другой тип вечерин
кэтлин это понрави
закончим создание
работает! О ТТрогро
не тратьте золото,
прогуляємся в джун
программистов не к
расширяем объекты
как низко вы можете
я знаю, как застави
перекрытие вручную
немного практики с
немного практики А
они вам и в самом де
скры т ь и обнаружи
так вот зачем нуж н
обходнойпуть Ключе
кэтлин все еще нужн
решение упражнения
отличная работа! —
помоги пчелиной ма
решение упражнения
все мы только пчелы
решение упражнения
все мы только пчелы
рабочие пчелы, объе
интерфейсы для раб
.ласс немного от сб
поваляем дурака Уч
интерфейсы не созд
мы ожидаем большое
скрестить бульдога
не верь глазам свои
вверх легко, а вот в
неглупые вопросы _
уберите страшных к
про видимость изме
ox уж этот дублирующ
не могу поверить, ч
абстрактные классы
стоит тысячи слов В
словесная битва Бе
проблемы множестве
в форме... ведра с ор
приступим о Длинны
понаблюдаем за пов
решение упражнения
решение упражнения
создай себе соперн
решение упражнения
решение упражнения
решение упражнения
8 перечисление и Ко
перечисления и кол
перечисления и кол
перечисления и кол
перечисления и кол
перечисления и кол
перечисления и кол
перечисления и кол
Разве перечисления
Коллекция уток Ф У
* перечисления и ко
перечисления и кол
перечисления и кол
перечисления и кол
перечисления и кол
перечисления и кол
перечисления и кол
перечисления и кол
перечисления и кол
перечисления и кол
перечисления и кол
перечисления и кол
перечисления и кол
перечисления и кол
перечисления и кол
перечисления и кол
перечисления и кол
перечисления и кол
перечисления и кол
острова в потоке Дл
намного проще Объе
запишите это Дьяво
прочитайте это еШе
не пересекайте пот
серьезный диалог ^ 0
окна диалога — это
справочная система
напишите это сам ос
бросайте мусор в ну
мне снова нужно к в
уваж ительные прич
решение упражнения
блок вы бора Запись
застигнутый враспл
о б з о р и п р е д в а
о б з о р и п р е д в а
о б з о р и п р е д в а
М ет од M atkA bsO вычис
о б з о р и п р е д в а
о б з о р и предвари
о б з о р и п р е д в а
о б з о р и п р е д в а
о б з о р и п р е д в а
^ з ь м и в руку кара
о б з о р и п р е д в а
Если у вас не получ
Эт о выход. Когда ул
о б зо р и п р е д в а
о б з о р и п р е д в а
о б зо р и п р е д в а
о б з о р и п р е д в а
о б зо р и п р е д в а
о б з о р и п р е д в а
о б з о р и п р е д в а
р е ш е н и е у п р а ж
\сод p r i v a t e v o i d o p e
в е зд е о б ъ е кт ы
к а к м и л о ! Анимир
з а м е ч а т е л ь н о
у п р а в л я е м г р а
\шг \же \щг /ш\ Уш\ / П
п о л ь з о в а т е л ь
у д а л е н и е э л е м
создание элементов
вот что вы будете д
начнем! Это элем ен
цветы рисуются при
соединим все вмест
что-то не так Тести
нехватка ресурсов
подробно о графике
методы создания гр
рисуем картинку Ри
как это выглядит? в
выглядит прекрасно
вернемся к события
как работает событ
что это за мерцание
сглаживание анимац
перестраиваем визу
решение упражнения
вывод графических
вывод мира ^ажнение
решение упражнения
мини-л0боратория А
O b je c tv ille Home of
смерть объекта c l a s
это твое последнее
смерть объекта Ког
о П одклю чите две д
смерть объекта Сер
Может пи метод заве
создаем копию Знач
1 ^ з ь м и в руку кар
не ограничивайте м
ссылки по запросу М
необязательные арг
почувствуй вкус на
надежность структу
расширь это Помнит
лучше быстрее силь
капитан жив! ^ а Г н
решение ребуса і^еї
дьявол в деталях Пр
UNQ для спасения Сбо
простые запросы Пр
это не sql Д н а щ о М
вот почему джимми л
небольшой обзор КЛ
а вы поклонник LINQ? П
Сгруппируем резуль
последний ребус в б
свой парень Джимми
соберем все вместе
ключевое слово var К
это всё, ребята Сое
Эндрю Стиллмен, Дже
Loading...
Loading...
Loading...
Magazine: . Стиллмен, Дж. Грин - Изучаем C#, 2-е издание