|
Страници по тази тема: 1 | 2 | >> (покажи всички)
Тема
|
За и против try...catch...finally
|
|
Автор | LNL (Нерегистриран) |
Публикувано | 23.02.05 15:43 |
|
Кога е уместно понзването на try...catch...finally. Ако правилно съм разбрал
try {...}
catch(Exeption e) {...}
finally {...}
прихваща всички изключения от .NET , a
try {...}
catch() {...}
finally {...}
прихваща всички изключения и грешки.
Мисълта ми е да не се прекалява с нейното използване. Имали разумен баланс.
Операционната система ще реагира, но ако приложението работи без надзор, нощем ... не е ли добре да се подсигурим като оградим цялата програма със try {...} и при грешка да приключим коректно , без проблеми. Много функции от .NET не връщат нищо , там е оправдано ... В тоя ред на мисли имате ли подобни проблеми и как подхождате... Пример: обикновенно ехе се стартира от сървър и минава коректно, прихващат се специфични грешки. Ако се стартира програмата от друг компютър по мрежата, без права за това се появява една страховита табела с грешки и трябва да се натисне бутон за продължение. Ако обаче оградим кода с try {...} catch() {...} предотвратяваме излизането на табелата с грешки. Имали правила по които се структурира програмата или всеки преценява...
| |
Тема
|
Re: За и против try...catch...finally
[re: LNL]
|
|
Автор |
XaMaB (откачалка) |
Публикувано | 24.02.05 14:45 |
|
Как може да ти се налага да ползваш трайкеч.
Истинския пор-грамист не ползва трай, неговия код работи винаги.
| |
Тема
|
Re: За и против try...catch...finally
[re: XaMaB]
|
|
Автор | NetDev (Нерегистриран) |
Публикувано | 25.02.05 09:49 |
|
Това с "истинския програмист" можеш да го забравиш ;-) Грешки и изключения винаги е възможно има, особено пък ако има операции по четене/запис от където и да е - кой истински програмист може да избегне да речем отпадането на мрежово устройство, препълване на EventLog (реален случай, в който гърми с изключение) и др. По отношение на заграждането в try/catch блок - идеята е че всеки catch трябва да лови възможно най-конкретния тип изключение, и евентуално ако не е фатално, "шоуто да продължи". Обаче ако е точно да няма достатъчни права, е тогава си е фатално.
| |
Тема
|
Re: За и против try...catch...finally
[re: NetDev]
|
|
Автор |
XaMaB (откачалка) |
Публикувано | 25.02.05 17:59 |
|
За целта си правиш за абсолютно всеки изцепшън отделен кетч и си пишеш специфична логика. Също така си слагаш и throw на 2-3 места из кетчовете.
| |
Тема
|
She umra ot smiah
[re: NetDev]
|
|
Автор | Sasho (Нерегистриран) |
Публикувано | 25.02.05 18:01 |
|
kolkoto i try catcha da slozish vse e malko. No kato gi slagash gledai da ne gi vlagash edin v drug ako e vuzmozno. A shto se otnasia do catch klauzite vurvi se ot po 4astna kum po obobshtena.
PS: Dobria programist vinagi namira vreme za Unit testove. Tuk o4akvam baia narod da izreve s zialo gurlo v zelanieto si da me oprovergae:))))
| |
Тема
|
Re: За и против try...catch...finally
[re: LNL]
|
|
Автор | Veso (Нерегистриран) |
Публикувано | 28.02.05 10:15 |
|
В добре замислените и реализирани библиотеки /VCL напр./ изключенията се използват от години и са естествена част от добрият стил на програмиране. Самата библиотека - също както и .NET - те принуждава да използваш изключения за писане на по кратък и елегантен код. Виж глава 18 от "Microsoft .Net Framework Приложно програмиране" на Джефри Рихтер. Софтпрес 2002 г.
MS най после разбраха, че писането на код от рода на
if (SomeFunc())
{ ...
}
else
{ ....
}
e отживелица.
| |
Тема
|
Re: За и против try...catch...finally
[re: LNL]
|
|
Автор |
ivaylo.hristov (непознат
) |
Публикувано | 04.04.05 13:33 |
|
Trqbva da izpolzvash Exceptionite samo za situacii v koito prilojenieto ti e preminalo v nepredviden ili ne mnogo bloagopriqten situacii.
Naprimer 4ista4kata se e spynala v kabela i nqmash dostyp do SQL servera ili do inet, ili pyk nqkoi fail koito trqbva da pro4etesh go nqma stoto HDD-to se e povredilo i ima bad sectori ili .... havna ideqta nali.
Inak ne se prepory4va izpolzvaneto na Exceptioni za slu4ai na normalna rabota na prilojenieto, naprimer ako imash textBox i nqkoi vyvede "skjsdgh" a ti o4akvash nqkakva celo4islena stoinost. V takyv slu4aj izpolzvaneto na exceptioni ne e dopustimo zaradi zabavqneto ot nqkolko sekundi koeto se polu4ava, za obrabotvaneto na stach traceto. V takyv slu4ai trqbva da izpolzvash nqkoi drug sposob.
Inak kato sa pisali po gore trqbva da si hvashtash samo tvoite exceptioni, za syotvetnoto neshto koeto pravish. I trqbva da proverqvash vinagi kakyv exception hvarlq neshtoto. Naprimer ako prashtash mail s stmp.SendMail malko ne logi4no no ste ti se hvcyrli HttpException
Have fun
| |
Тема
|
против
[re: LNL]
|
|
Автор |
GAMEN4O (ентусиаст) |
Публикувано | 11.04.05 22:32 |
|
| |
Тема
|
Re: За и против try...catch...finally
[re: LNL]
|
|
Автор |
Гypy (бенгбъс драйвър) |
Публикувано | 12.04.05 20:43 |
|
Много е Джавешко. Глеам да не го ползвам, като може. Нещо в цялата концепция ми се губи, ама не знам какво. Добре поне, че не е задъжилтено да ги хендълваш изцепшъните, като в Жаба.
--
Sometimes the sole purpose of your life is to serve as a warning to others.
| |
Тема
|
Re: За и против try...catch...finally
[re: Veso]
|
|
Автор |
nupkc (Пътешественик) |
Публикувано | 27.04.05 17:47 |
|
Доколкото аз зная хвърлянето и ловенето на ексепшъни е доста по-тежко от една проверчица. Примерно по-добре if (HashTable1.ContainsKey(...)) отколкото с try.
Ние сме точици във вселената. А всеки човек е една цяла вселена...
| |
|
Страници по тази тема: 1 | 2 | >> (покажи всички)
|
|
|