2013-10-24 2 views
0

Я понимаю, что throw сохраняет стек вызовов, но throw ex нет.Почему я должен исключать исключение, например throw ex?

Очевидно, что мы находим или мы видим много случаев использования для

`throw` 

    `throw new exception("custom Message", ex)` 

Теперь, что ошибки меня является то, что, если throw exне сохраняет трассировки стека, почему я должен использовать это?

Какие-либо практические сценарии, в которых есть причина использовать заявление throw ex?

ответ

3

Поскольку вы не заинтересованы в экспонировании stacktrace под этим броском либо потому, что он был зарегистрирован в другом месте, либо не нужен для обработки отладки исключения. Я даже мог представить себе паранойю в раскрытии логики, где она не нужна. (В этом случае я бы ожидал увидеть пользовательский бросок исключения/пользовательский бросок, а не бросок ex, хотя)

Чаще всего, хотя это часто происходит потому, что программист не знал побочных эффектов бросить экс.

+0

+1. ответы «четкие». Благодарю. –

Смежные вопросы