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