There are some posts that asks what the difference between those two are already. (why do I have to even mention this...)
But my question is different in a way
When you do throw ex, that thrown exception becomes the "original" one. So all previous stack trace will not be there.
throw ex
If you do throw, the exception just goes down the line and you'll get the full stack trace.
throw