If you are using .net 4.5 and use async/await you will realize that you cannot await in the catch block, the new C# 6 language overcomes this limitation.
in .Net 4.5 you can us the ExceptionDispatchInfo to capture the exception and throw as required, example below
———————————————————————————————————————————————————
ExceptionDispatchInfo capturedException = null; try { SomeMethodCall() } catch (Exception ex) { capturedException = ExceptionDispatchInfo.Capture(ex); } if (capturedException != null) { await LogExceptionMethod(), //log exceptions to an external endpoint } throw exception;