попробуй уловить вопрос - PullRequest
4 голосов
/ 18 июня 2011

Я делаю это в C #.Это уровни кода

VIEW -> VIEWHANDLER -> BusinessLayer -> WCF SERVICE

Представление вызывает ViewHandler, который вызывает бизнес-уровень, который вызывает службу.Сервис выдаст какое-то исключение по вине.Все исключения обрабатываются в обработчике View.Бизнес-уровень повторно генерирует исключение ошибки, полученное от службы, как это должно быть обработано в VIEWHANDLER.Каков наилучший способ отбросить его в BusinessLayer?

catch(FaultException f)
{
throw f;
}

или

catch(FaultException f)
{
throw;
}

Сбрасывает ли "throw f" информацию стека вызовов, содержащуюся в перехваченном исключении?и бросает ли бросить его как есть?

Ответы [ 2 ]

6 голосов
/ 18 июня 2011

Да, throw f; сбросит стек.

throw; не будет.

В любом случае, если это все, что вы делаете в блоке catch, вам лучше вообще не использовать блок try-catch, поскольку это бессмысленно.

3 голосов
/ 18 июня 2011

Да, вы должны использовать throw, а не throw f. Если вы ничего не делаете в выражении catch, вы можете пропустить catch.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...