Ведущий Диалог
Зарегистрирован: 09 January 2006
Сообщения: 172
Примеры кода: 0
|
Re[3]: Вынесение множества catch() в отдельный метод |
30 January 2007 12:31 |
|
|
|
|
Здравствуйте, mikeduglas, Вы писали:
M>Здравствуйте, VladD2, Вы писали:
VD>>Здравствуйте, mikeduglas, Вы писали:
M>>>Есть много мест примерно с таким кодом:
M>>>[c#]
M>>>catch (NullReferenceException ex)
M>>>catch (ArgumentException ex)
M>>>[c#]
VD>>Скажи, а как можно разумно и по разному реагировать на эти исключения?
M>Я наверняка знаю, что если NullReferenceException, то это означает, что такого поля нет в таблице БД.
VD>>Так же интересно почему просто не вынести блок из функции и не обрамить ее этим блоком? Ну, так:
VD>>try
VD>>{
VD>> // тут что-то делаем
VD>> SomeWork();
VD>>}
VD>>catch (...)
VD>>...
VD>>catch (Exception ex)
VD>>{
VD>> ...
VD>>}
M>SomeWork() может вызываться в десятке разных мест.
NullReferenceException может выдаваться в милионах разных случаев. Вы рескуете сказать что у вас нема строки в БД, во всех этих милионах случаев. Ваш датаслой должен выдавать какоето более конкретное исключение. Могу даже идею подсказать RowNotFoundException .
Данное сообщение получено с сайта RSDN
|
|