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> раВно н<strong>е</strong> работа<strong>е</strong>т...<br />

Б райан усп <strong>е</strong>ш но пользовался Excuse M a n a g e r п р и н а л и ч и и п а п ­<br />

ки , н а п о л н <strong>е</strong> н н о й ф айлам и с оправданиям и , к о то р у ю о н создал<br />

во вр<strong>е</strong>м я н а п и сания п р о гр а м м ы , н о о н забыл п р о эту папку и<strong>е</strong>с<strong>е</strong><br />

риализаци<strong>е</strong>й п р о гр а м м ы . И в о т ч т о случилось....<br />

П р и л о ж <strong>е</strong> н и <strong>е</strong> Б л о к н о т п озволя<strong>е</strong>т воссоздать ф айлы с о правданиям и. П <strong>е</strong> р ­<br />

вая стр о к а — о правдани<strong>е</strong>, в то р а я — р<strong>е</strong>зультат <strong>е</strong> го п р и м <strong>е</strong> н <strong>е</strong> н и я , тр <strong>е</strong> тья —<br />

дата <strong>е</strong>го посл<strong>е</strong>дн<strong>е</strong>го исп о л ьзо вания ( « 1 0 /4 /2 0 0 7 12:08:13 Р М »).<br />

© В ы зо в и т<strong>е</strong> Excuse M anager и о т к р о й т <strong>е</strong> оправдани<strong>е</strong>. П р и п о я в л <strong>е</strong> н и и и с к л ю ч <strong>е</strong> н и я ш ;<strong>е</strong>лкнит<strong>е</strong><br />

на к н о п к <strong>е</strong> D etails. О б р а ти т<strong>е</strong> вним а н и <strong>е</strong> н а ст<strong>е</strong>к вызова - и м <strong>е</strong> н н о та к назы ва<strong>е</strong>тся м <strong>е</strong>тод, вы ­<br />

з ы в а ю щ и й д р уго й м <strong>е</strong>тод, к о т о р ы й , в свою оч<strong>е</strong>р<strong>е</strong>дь, то ж <strong>е</strong> вы зы ва<strong>е</strong>т м <strong>е</strong>тод и т. д.<br />

Программа сообща<strong>е</strong>т, что исключ<strong>е</strong>ни<strong>е</strong> появля<strong>е</strong>тся при<br />

с<strong>е</strong>риализации. Можно ли из подробного описания поняты.<br />

Excuse M anager " какая строка кода явля<strong>е</strong>тся причиной <strong>е</strong>го появл<strong>е</strong>ния?<br />

IMimidted<br />

Cortinue, the<br />

ушсЛЛОіЛ.Л<strong>е</strong><br />

Index was outside<br />

* * * * * * * * * * * * * * Exception Text * * * * * * * * * * * * * *<br />

System.Runtime.Serialization.SerializationException: End of Stream encountered before parsing<br />

was completed.<br />

atSystem.Runtime.Serialization.Formatters.Binary._BinaryParser.Run()<br />

пробл<strong>е</strong>ма с классом<br />

BinaryFormatter.<br />

Это пр<strong>е</strong>дполож<strong>е</strong>ни<strong>е</strong><br />

им<strong>е</strong><strong>е</strong>т смысл,<br />

так как прилож<strong>е</strong>ни<strong>е</strong><br />

пыталось д<strong>е</strong>с<strong>е</strong>риализовать<br />

т<strong>е</strong>кстовый<br />

файл.<br />

Много<strong>е</strong> можно узнать из<br />

г.т<strong>е</strong>ка вызова, в<strong>е</strong>дь там<br />

показыва<strong>е</strong>тся список<br />

запущ<strong>е</strong>нных А/івтодов.<br />

Вы видит<strong>е</strong>, что м <strong>е</strong>­<br />

тод OpenFileQ класса<br />

Excuse вызыва<strong>е</strong>тся <strong>е</strong>го<br />

конструктором (.ctor),<br />

который, в свою оч<strong>е</strong>р<strong>е</strong>дь,<br />

вызыва<strong>е</strong>тся обработчиком<br />

событии кнопки<br />

Random Excuse.<br />

atSystem.Runtime.Serialization.Fon7iatters.Binary.ObjectReader.Deserialize(HeaderHandler<br />

handler, _BinaryParserserParser, Boolean fCheck, Boolean isCrossAppDomain,<br />

IMethodCallMessage methodCallMessage)<br />

at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize(Stream<br />

serializationStream, HeaderHandler handler, Boolean fCheck, Boolean IsCrossAppDomain,<br />

IMethodCallMessage methodCallMessage)<br />

atSystem.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize(Stream<br />

serializationStream)<br />

'a t Chapter10.Excuse.OpenFile(String ExcusePath) in C:\Documents and Settings\Administrator\<br />

^My DocumentsWisua! Studio 2005\Projects\Chapter10\Chapter10\Excuse.cs:line 40<br />

at Chapter10.Excuse..ctor(Random random, String Folder) in C:\Documents and Settings\<br />

^dministrator\My DocumentsWisual Studio 2005\Projects\Chapter10\Chapter10\Excuse.cs:line 30<br />

^C hapter10.Form 1.random Excuse_Click(O bject sender, EventArgs e) in C:\Documents and<br />

Settings\AdministratortMy DocumentsWisual Studio 2005\Projects\Chapter10\Chapter10\Form1.<br />

csiline 146<br />

© Щ <strong>е</strong> л ч о к на к н о п к <strong>е</strong> D etails п озволя<strong>е</strong>т м н о го <strong>е</strong> узнать о п р и ч и н а х в о зн и к ш <strong>е</strong> й пробл<strong>е</strong>м ы . Есть<br />

ид<strong>е</strong>и, что со вс<strong>е</strong>м этим д<strong>е</strong>лать?<br />

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

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

Saved successfully!

Ooh no, something went wrong!