My preferences is to use
try
{
}
catch (Exception ex)
{
...
throw new Exception ("Put more context here", ex)
}
This preserves the original error, but allows you to put more context, such as an object ID, a connection string, stuff like that. Often my exception reporting tool will have 5 chained exceptions to report, each reporting more detail.