# разница throw; и throw ex; в С#

**URL:** <https://forum.itvdn.com/t/raznicza-throw-i-throw-ex-v-s/3005>\
**Category:** C# / .NET Developer\
**Created:** [14.01.2019 13:18:33 UTC](https://forum.itvdn.com/t/raznicza-throw-i-throw-ex-v-s/3005 "2019-01-14T13:18:33Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![Andrew](https://forum.itvdn.com/letter_avatar_proxy/v4/letter/a/f19dbf/32.png) [@Andrew](https://forum.itvdn.com/u/Andrew)\
**Post date:** [14.01.2019 13:18:35 UTC](https://forum.itvdn.com/t/raznicza-throw-i-throw-ex-v-s/3005/1 "2019-01-14T13:18:35Z")

</div>

Подскажите в чём разница, когда происходит перебрасывание ошибки через throw; и throw ex;

```
try
{
    throw new Exception("Error");
}
catch (Exception e)
{
    throw;
    //throw e;
}
```

---

<div class="post-metadata">

**Author:** ![Anton](https://forum.itvdn.com/letter_avatar_proxy/v4/letter/a/d9b06d/32.png) [@Anton](https://forum.itvdn.com/u/Anton)\
**Post date:** [14.01.2019 15:00:26 UTC](https://forum.itvdn.com/t/raznicza-throw-i-throw-ex-v-s/3005/2 "2019-01-14T15:00:26Z")

</div>

throw повторно выбрасывает исключение, которое было обнаружено, и сохраняет трассировку стека (путь к источнику исключения).  
throw ex генерирует одно и то же исключение, но сбрасывает трассировку стека на этот метод.

Для проверки этого блок try-catch поместите в метод и вызовите его в другом блоке try-catch, после нахождения ошибки просмотрите её детали и значения её свойства StackTrace

> <https://stackoverflow.com/questions/730250/is-there-a-difference-between-throw-and-throw-ex>
