|
|
|
Передача текста ошибки как результат функции
|
|||
|---|---|---|---|
|
#18+
Добрый день! В проекте обнаружил следующий код. Код: c# 1. 2. 3. 4. 5. Программист здесь решил не использовать исключения. Является ли анти-паттерном передача текста ошибки как результат функции? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2014, 11:24 |
|
||
|
Передача текста ошибки как результат функции
|
|||
|---|---|---|---|
|
#18+
Дэн543, Нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2014, 11:35 |
|
||
|
Передача текста ошибки как результат функции
|
|||
|---|---|---|---|
|
#18+
То что не используются исключения никакого криминала нет. Например WinAPI их не использует. Тут на вкус и цвет ... Главное чтобы не было каши из половины кода с исключениями и второй половины с возвратом ошибок. Но и возврат ошибки текстом не самое лучшее решение. Как потом эту ошибку анализировать. Хотя если анализ не нужен, а нужен только сам факт ошибки и описание (чтобы пользователю показать или в лог написать), то вполне нормально когда вызывающий уровень знает куда выводить, а вызываемый сообщает что писать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2014, 11:40 |
|
||
|
Передача текста ошибки как результат функции
|
|||
|---|---|---|---|
|
#18+
Dima TТо что не используются исключения никакого криминала нет. Например WinAPI их не использует. Тут на вкус и цвет ... Главное чтобы не было каши из половины кода с исключениями и второй половины с возвратом ошибок. Но и возврат ошибки текстом не самое лучшее решение. Как потом эту ошибку анализировать. Хотя если анализ не нужен, а нужен только сам факт ошибки и описание (чтобы пользователю показать или в лог написать), то вполне нормально когда вызывающий уровень знает куда выводить, а вызываемый сообщает что писать. Два соображения. 1. Сейчас анализ ошибок не нужен. Но вполне возможно, в будущем понадобится. В этом случае переписывать весь код? 2. Мне понадобилось, чтобы эта функция вернула определенное значение (идентификатор контракта, который она обновила). Но возвращаемое значение уже занято. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2014, 11:48 |
|
||
|
Передача текста ошибки как результат функции
|
|||
|---|---|---|---|
|
#18+
Дэн543Два соображения. 1. Сейчас анализ ошибок не нужен. Но вполне возможно, в будущем понадобится. В этом случае переписывать весь код? Зачем? Только функцию. Передай указатель на переменную куда код ошибки записать. Сделай его NULL по умолчанию. Код: sql 1. или установить через SetMyLastError() и читать GetMyLastError() Обычно изнутри гораздо проще сформировать описание ошибки чем снаружи. Дэн5432. Мне понадобилось, чтобы эта функция вернула определенное значение (идентификатор контракта, который она обновила). Но возвращаемое значение уже занято. Завтра понадобится вернуть два значения... Для этого есть передача параметров по ссылке или указателю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2014, 12:04 |
|
||
|
Передача текста ошибки как результат функции
|
|||
|---|---|---|---|
|
#18+
Dima TТо что не используются исключения никакого криминала нет. Например WinAPI их не использует. . Как ни странно, WinAPI использует исключения. Dima TНо и возврат ошибки текстом не самое лучшее решение. Как потом эту ошибку анализировать. А это правильно замечено. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2014, 16:11 |
|
||
|
Передача текста ошибки как результат функции
|
|||
|---|---|---|---|
|
#18+
MasterZivКак ни странно, WinAPI использует исключения. То WinAPI которое я использовал ни разу исключений не вызывало, только ошибки возвращало. Если уж быть точным - исключения были, но из-за кривых передаваемых параметров, например передача указателя на несуществующий адрес в памяти. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2014, 18:50 |
|
||
|
|

start [/forum/topic.php?fid=16&fpage=47&tid=1341425]: |
0ms |
get settings: |
7ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
48ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
2ms |
| others: | 196ms |
| total: | 328ms |

| 0 / 0 |
