Wie kann ich eine "fehlgeschlagene JSON-Decodierung" in Perl abfangen?

8

Also versuche ich load eine REST-API zu testen, die einen JSON-Wert zurückgibt.

Dafür erstelle ich mehrere Instanzen des Perl-Skripts.

Das Perl-Skript ruft im Grunde diese URL auf und versucht decode_json . Offensichtlich, wenn eine wesentliche Last erzeugt wird, schlägt sie fehl.

Nun ist das Problem, dem ich gegenüberstehe, - Ein Fehler wird an der Eingabeaufforderung angezeigt, aber diese Fehlermeldung wird nicht in eine Datei geschrieben.

Die Fehlermeldung ist

malformed JSON string, neither array, object, number, string or atom, at character offset 0 (before "Can't connect to 209...") at json_load_test.pl line 39.

In allen drei Versuchen unter Zeile 39 bezieht sich auf:

%Vor%

Ich führe das Skript einfach an der Eingabeaufforderung wie folgt aus:

%Vor%

ICH ERWARTE DIE FEHLERMELDUNG, die in "output.txt" geschrieben werden soll

Meine drei fehlgeschlagenen Versuche sind wie folgt.

Versuch 1:

%Vor%

Versuch 2:

%Vor%

Versuch 3:

%Vor%     
Amey 18.10.2011, 15:26
quelle

1 Antwort

18

Es sieht so aus, als käme Ihre Fehlermeldung von stderr, nicht von stdout. Also,

%Vor%

Oder etwas in diesem Sinne. Wenn Sie beide in einer Datei möchten:

%Vor%

BEARBEITEN:

Wenn Sie aus irgendeinem Grund den Fehler im Perl abfangen und an stdout senden möchten, könnten Sie:

%Vor%

EDIT2:

Wie daxim in den Editierhinweisen darauf hinweist, ist Try :: Tiny möglicherweise einfacher:

%Vor%     
Thom Blake 18.10.2011, 15:29
quelle

Tags und Links