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.

