TL; DR - Pythonでキャッチ例外とあなたが戻っフレックスに、クライアントに表示するメッセージで、カスタムJSONオブジェクトを送信します。
これは私が従うパターンです。私が与える例はC#ですが、私は同じ原則をPythonに適用できると仮定しています。
私は、Webサービスで例外を処理し、私がユーザーに表示したいエラーを含むJSONオブジェクトを送信します。
ここで私は、エラーをキャッチしています:ここで
try
{
string jsonResponse = doStuff();
return Json(jsonResponse, JsonRequestBehavior.AllowGet);
}
catch (Exception ex)
{
return Json(new GetTokenError(ex.Message), JsonRequestBehavior.AllowGet);
}
は、私がJSONに変換し、クライアントに返すために使用するリターンオブジェクトです:このメソッドを使用して
/// <summary>
/// Used for displaying consistent error messages
/// </summary>
public class GetTokenError
{
/// <summary>
/// Ctor
/// </summary>
/// <param name="error">Error message to display</param>
public GetTokenError(string error)
{
this.error = error;
}
/// <summary>
/// The error to display
/// </summary>
public string error { get; set; }
}
は常に200を返します。 Webサーバーに何か問題がない限り、クライアントとWebサーバー間の接続、またはgremlinsがマシンに感染しています。ここではフレックス側については
は、私の結果ハンドラです:
var http:HTTPService = new HTTPService();
http.method = "POST";
http.resultFormat = HTTPService.RESULT_FORMAT_TEXT;
http.url = "http://url.com";
http.addEventListener(ResultEvent.RESULT, function(evt:ResultEvent):void {
try {
var ret:Object = JSON.decode(evt.result.toString());
if (ret.error)
{
// handle server error
}
// go about task
} catch (e:Error) {
// handle local error
}
});
http.addEventListener(FaultEvent.FAULT, function(ex:FaultEvent):void {
// handle error with the call
});
http.send();
あなたは例外IOErrorかとSecurityErrorのEventListenerを試してみました。 – michael