TsgcHTTP3Client › Ereignisse › OnHTTP3Exception
Wird ausgelöst, wenn während der Verarbeitung der HTTP/3-Verbindung eine Ausnahme ausgelöst wird.
TsgcHTTP3ExceptionEvent = procedure(Sender: TObject;
const E: Exception) of object;
property OnHTTP3Exception: TsgcHTTP3ExceptionEvent read FOnHTTP3Exception
write FOnHTTP3Exception;
| Name | Typ | Beschreibung |
|---|---|---|
Sender | TObject | Die TsgcHTTP3Client-Instanz, die das Ereignis ausgelöst hat. |
E | const Exception | Die Ausnahme. Wenn es sich um eine TsgcHTTP3Exception handelt, trägt ihre Eigenschaft ErrorCode den HTTP/3-Fehlercode aus RFC 9114 Abschnitt 8.1, zum Beispiel h3ecFRAME_ERROR oder h3ecMESSAGE_ERROR. |
OnHTTP3Exception liefert das Ausnahmeobjekt selbst, und genau das macht es nützlicher als OnError: Ein TsgcHTTP3Exception stellt einen ErrorCode bereit, der die Protokollverletzung genau benennt, statt nur eine Meldung zu liefern.
Es wird bei Fehlern ausgelöst, die während der Verarbeitung der Verbindung auftreten, einschließlich fehlerhafter vom Peer gesendeter Frames, QPACK-Dekodierungsfehlern und eines Antwort-Bodys, der MaxResponseSize überschritten hat.
Behandeln Sie das Ereignis, um den Fehler zu protokollieren oder zu klassifizieren. Es zuzuweisen schluckt die Ausnahme bei einem synchronen Aufruf nicht, dieser löst weiterhin zum Aufrufer hin aus, behalten Sie daher das umgebende try..except bei.
procedure TfrmMain.OnHTTP3ExceptionEvent(Sender: TObject; const E: Exception);
begin
if E is TsgcHTTP3Exception then
Log(Format('HTTP/3 error code %d: %s',
[Ord(TsgcHTTP3Exception(E).ErrorCode), E.Message]))
else
Log(E.Message);
end;