throw; сохраняет исходный stack trace; throw ex; перезаписывает его точкой повторного броска.
Разбор
- Полный stack trace критичен для диагностики.
- Для обёртки — new Wrapper(ex).
- throw; только внутри catch.
- Потерянный trace усложняет разбор.
Итог
При повторном пробросе используйте throw;.