Folgende statischer Methode automatisiert das Aufschlüsseln der .NET-Ausnahme:
static void cRLExtendException(System.Exception _exception) { System.Exception exception = _exception; SysInfoLogStr infoLogStr; ; if (exception) { infoLogStr = exception.get_Message(); if (exception.Equals(exception.GetBaseException())) { // the most inner exception has reached, now we can write the infolog message and throw the exception error(infoLogStr); throw Exception::CLRError; } else { // the current exception is not the most inner exception, so we just set a infolog prefix setprefix(infoLogStr); MyClass::cRLExtendException(exception.get_InnerException()); } } /* else { well, there was no CLR exception, so just left out } */ }
Und so wird die neue Hilfsmethode verwendet:
System.String[] files; ; try { files = System.IO.Directory::GetFiles('c:\\halliGalli'); } catch { MyClass::cRLExtendException(CLRInterop::getLastException()); }
So sieht dann die Ausgabe des Infolog-Fensters aus:
In den Codebeispielen wurde die Hilfsmethode auf einer Klasse mit dem Namen 'MyClass' angelegt. Auf welcher Klasse schulssendlich die Methode implementiert wird, sollte aber der Entwickler, beziehungsweise das Entwicklerteam entscheiden.