We have a few critical exceptions that get thrown on the C++ side. We also have some in the C# diverter. In all these cases, lets call ReportError before throwing them just to ensure that they get logged.