14.02.2017 Views

. Стиллмен, Дж. Грин - Изучаем C#, 2-е издание

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

обработка исключ<strong>е</strong>ний<br />

Когда ж<strong>е</strong>лтая<br />

строка<br />

достига<strong>е</strong>т<br />

точки<br />

останова,<br />

над крас -<br />

ной точкой<br />

на поляк<br />

появля<strong>е</strong>тся<br />

ж<strong>е</strong>лтая<br />

стр<strong>е</strong>лка.<br />

Д т <strong>е</strong> п <strong>е</strong> р о т л а д и м !<br />

. %<br />

Обновит<strong>е</strong> обработчик событий кнопки Random Excuse, вставив туда код с пр<strong>е</strong>дыдущ<strong>е</strong>й<br />

страницы. Пом<strong>е</strong>стит<strong>е</strong> точку останова на п<strong>е</strong>рвую строку м<strong>е</strong>тода и отладьт<strong>е</strong> программу.<br />

© Запустит<strong>е</strong> программу и уб<strong>е</strong>дит<strong>е</strong>сь, что когда программа указыва<strong>е</strong>т на папку с файлами<br />

оправданий, кнопка Random Excuse работа<strong>е</strong>т корр<strong>е</strong>ктно. Программа пр<strong>е</strong>рв<strong>е</strong>тся на заданной<br />

вами точк<strong>е</strong> останова:<br />

■О<br />

-Г7Г<br />

private void randoraEKcuse_Cllck(object sender, EventArgs e)<br />

{<br />

string[] -fileNames = Directory,Ge1:Files(selectedFolder, "*.excuse")j<br />

if (fileNames,Length == в)<br />

}<br />

else<br />

{<br />

try<br />

А<br />

MessageBox.Show("Please specify a folder with excuse files in it”<br />

" N o excuse files found")J<br />

if (CheckChanged() == true)<br />

{<br />

currentExcuse = new Excuse(randoiBj selectedFolder);<br />

}<br />

><br />

catch (SerializationException)<br />

{<br />

currentExcuse - new ExcuseO;<br />

currentExcuse.Description = ""j;<br />

currentExcuse.Results =<br />

currentExcuse.LastUsed = OateTirae.Now;<br />

Hessage0cfx.5hciw(<br />

"Your excuse file was invalid.",<br />

"Unable to open a random excuse");<br />

}<br />

finally<br />

{<br />

UpdateForm(false);<br />

}<br />

^<br />

©<br />

О<br />

Пошагово просмотрит<strong>е</strong> обработчик событий кнопки Random Excuse и уб<strong>е</strong>дит<strong>е</strong>сь, что<br />

она работа<strong>е</strong>т корр<strong>е</strong>ктно. Посл<strong>е</strong> зав<strong>е</strong>рш<strong>е</strong>ния блока t r y долж<strong>е</strong>н произойти п<strong>е</strong>р<strong>е</strong>ход к блоку<br />

f i n a l l y , так как исключ<strong>е</strong>ний н<strong>е</strong> обнаруж<strong>е</strong>но.<br />

Т<strong>е</strong>п<strong>е</strong>рь укажит<strong>е</strong> папку, сод<strong>е</strong>ржащую вс<strong>е</strong>го один д<strong>е</strong>ф<strong>е</strong>ктный файл, и снова щ<strong>е</strong>лкнит<strong>е</strong> на<br />

кнопк<strong>е</strong> Random Excuse. Из блока t r y при обнаруж<strong>е</strong>нии исключ<strong>е</strong>ния управл<strong>е</strong>ни<strong>е</strong> п<strong>е</strong>р<strong>е</strong>йд<strong>е</strong>т<br />

к блоку c a tc h . Посл<strong>е</strong> того как будут просмотр<strong>е</strong>ны вс<strong>е</strong> <strong>е</strong>го оп<strong>е</strong>раторы, начн<strong>е</strong>т выполняться<br />

блок f i n a l l y .<br />

дальш<strong>е</strong> ► 471

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!