Hallo,
Habe mich etwas in die try catch throw Sache reingelesen. Und würde gerne wissen ob ein throw in einer Funktion den Stack verletzt.
Funktioniert das wie ein goto?
In asm funktioniert eine Funktion doch so:
Oder ist es besser alles mit IF abzufangen?
Habe mich etwas in die try catch throw Sache reingelesen. Und würde gerne wissen ob ein throw in einer Funktion den Stack verletzt.
Funktioniert das wie ein goto?
C++:
int f(void)
{
throw "Error!";
return 0;
}
int main(void)
{
try
{
f();
}
catch(char *error)
{
printf("%s", error);
}
return 0;
}
In asm funktioniert eine Funktion doch so:
C++:
main:
call funktion; // hier wird die Rücksprungaddresse in den Stack gespeichert
end
funktion:
INC R0;
// was passiert wenn hier in C ein throw aufgerufen wird?
// wird die Rücksprungaddresse im Stack gelassen?
RET; // hier wird die Rücksprungaddresse vom Stack
// geholt und nach oben zurückgesprungen (return in C)
Oder ist es besser alles mit IF abzufangen?