В C #, throw ex
почти всегда неверен, так как он сбрасывает трассировку стека.
Интересно, есть ли в этом реальное применение? Единственная причина, о которой я могу думать, - это скрыть внутреннее устройство вашей закрытой библиотеки, но это действительно слабая причина. Кроме того, я никогда не сталкивался с реальным миром.
Edit: Я имею в виду throw ex
, как при выдаче точно такого же исключения, которое было поймано, но с пустой трассировкой стека, как и делать это совершенно неправильно. Я знаю, что throw ex должен существовать как языковая конструкция, позволяющая генерировать другое исключение ( throw new DifferentException («ex as innerException», ex)
), и мне просто интересно, существует ли когда-нибудь ситуация, когда throw ex
не является неправильным.