обработка исключений и (бросок экс) - PullRequest
0 голосов
/ 21 октября 2010

Каков наилучший способ обработки исключения?
Кроме того, почему я никогда не должен писать:

catch (Exception ex) { throw ex; }

Ответы [ 2 ]

3 голосов
/ 21 октября 2010

Лучший способ обработать исключение - сделать что-то осмысленное в блоке catch (тот, который в вашем примере содержит throw ex).Определение «значимого» полностью зависит от ваших потребностей.

Вы не должны делать catch (Exception ex) { throw ex; }, потому что это тормозит цепочку исключений.Вполне нормально перехватить исключение, обработать его и повторно выдать, чтобы вызывающий код мог его увидеть, но вы должны делать это так:

catch (Exception ex) { /* handling code; */ throw; } 
1 голос
/ 21 октября 2010

Зачем вам ловить ожидание, чтобы просто бросить его снова, если бы вы поймали исключение и сделали что-то другое, чем просто бросили, это было бы хорошо!

try 
{
}
catch(Exception ex)
{
 // do something like log the exception
 throw ex; // let another catch block handle the expection.
}
...