Kann man JclDebug auch einfach die
Exception übergeben um den Stacktrace zu erhalten? Ich mache das in meinem
Indy-basierten Web Framework, allerdings mit madExcept.
Man muss nur im OnExecute Handler schreiben:
Delphi-Quellcode:
try
... werte Request aus, erzeuge die Response
except
on E:
Exception do
begin
Response.ContentText := '
<!DOCTYPE html>' + #10
+ '
<html>' + #10
+ '
<head>' + #10
+ '
<title>500 Internal Error</title>' + #10
+ '
</head>' + #10
+ '
<body>' + #10
+ '
<h1>' + E.ClassName + '
</h1>' + #10
+ '
<h2>Exception message: ' + E.
Message + '
</h2>' + #10
+ '
<hr />' + #10
+ '
<h2>Stack trace:</h2>' + #10
+ '
<pre>' + #10
+
string(madStackTrace.StackTrace) + #10
+ '
</pre>' + #10
+ '
</body>' + #10
+ '
</html>';
// nicht vergessen!
raise;
end;
end;
Die Funktion madStackTrace.StackTrace erzeugt dabei den StackTrace. (Der Code oben ist leicht modifiziert, nicht 100% wie in meinem Framework, nur zur Illustration).