What are the best practices for error handling in Asynchronous Event Receivers? I'm currently writing an ItemAdded Event Receiver. The Status and ErrorMessage properties only seem to be relevant for synchronous event receivers. Setting them as follows does not appear to do anything (such as log to ULS) for asynchronous event receivers:
properties.ErrorMessage = "An error occurred in the xyz event receiver"
properties.Status = SPEventReceiverStatus.CancelWithError;
My current approach is to log known errors to the ULS using the SPDiagnosticsService, as documented here. I am also wrapping a try/catch around all of the code in my Event Receiver's ItemAdded method to catch any unexpected exceptions and log them to the ULS as well.
Does this sound like a valid approach? Is there any reason I would want to rethrow the unexpected exceptions back to the SharePoint framework?