Hallo !
Ich versuche gerade in meinen catch-Zweigen auf den Namen und die Zeilennummer der aufgetretenen Exceptions mittels __ThrowExceptionName & __ThrowLineNumber() zuzugreifen.
Ich habe except.h eingebunden und auch die Option -xp in der Datei gesetzt (#pragma option -xp). Auch ist in den Projektoptionen der Haken bei "Ort des Auftretens" gesetzt.
Mein Problem ist nun, daß __ThrowExceptionName() leere Werte liefert, wenn eine Exception provoziert wird.
void foo (void)
{
int a;
try
{
a = IntToStr("Hallo");
}
catch(Exception &e)
{
ShowMessage( e.Message + "\n\n"
+ "An exception of type " + __ThrowExceptionName()
+ AnsiString(__ThrowLineNumber())
+ "\nof file " + __ThrowFileName() );
}
}
Es funktioniert, wenn man selbst eine Exception mit throw auslöst, aber das ist doch nicht der Sinn der Sache, oder ?!
void foo2 (void)
{
int a;
try
{
throw Exception("Ich bin eine Exception");
}
catch(Exception &e)
{
ShowMessage( e.Message + "\n\n"
+ "An exception of type " + __ThrowExceptionName()
+ AnsiString(__ThrowLineNumber())
+ "\nof file " + __ThrowFileName() );
}
}
Was mache ich falsch?
Ich will doch den Ort von Exceptions wissen, welche ich noch nicht kenne, nicht meine selbst erzeugten... :-)
Michael
Ich versuche gerade in meinen catch-Zweigen auf den Namen und die Zeilennummer der aufgetretenen Exceptions mittels __ThrowExceptionName & __ThrowLineNumber() zuzugreifen.
Ich habe except.h eingebunden und auch die Option -xp in der Datei gesetzt (#pragma option -xp). Auch ist in den Projektoptionen der Haken bei "Ort des Auftretens" gesetzt.
Mein Problem ist nun, daß __ThrowExceptionName() leere Werte liefert, wenn eine Exception provoziert wird.
void foo (void)
{
int a;
try
{
a = IntToStr("Hallo");
}
catch(Exception &e)
{
ShowMessage( e.Message + "\n\n"
+ "An exception of type " + __ThrowExceptionName()
+ AnsiString(__ThrowLineNumber())
+ "\nof file " + __ThrowFileName() );
}
}
Es funktioniert, wenn man selbst eine Exception mit throw auslöst, aber das ist doch nicht der Sinn der Sache, oder ?!
void foo2 (void)
{
int a;
try
{
throw Exception("Ich bin eine Exception");
}
catch(Exception &e)
{
ShowMessage( e.Message + "\n\n"
+ "An exception of type " + __ThrowExceptionName()
+ AnsiString(__ThrowLineNumber())
+ "\nof file " + __ThrowFileName() );
}
}
Was mache ich falsch?
Ich will doch den Ort von Exceptions wissen, welche ich noch nicht kenne, nicht meine selbst erzeugten... :-)
Michael
Comment