2

PHP アプリケーションと通信する Python アプリケーションがあります。現在、両方の側でエラー コードを定義して一致させています (つまり、PHP で Python 側の障害を検出し、それに応じて対応することができます)。

私の問題は、Python がインタープリター言語であることから来ています。その理由は次のとおりです。コードに構文上の問題がある場合、インタープリターはエラー コードを返します。ただし、これらのインタープリター エラー コードは、アプリケーション エラーと区別できません。

私は Python コードを担当していませんが、PHP を使用してエンド ユーザーに通知できるように、最終的な Python インタープリターの障害を検出できるようにするよう求められました。

そのため、誤動作時のインタープリターの戻りコードのリストを見つける必要があります。Google、Python doc、man ページの両方でこの情報を見つけることができませんでした。

誰かがこの情報をどこで見つけられるか知っていますか? (また、この問題を回避する方法について他にアイデアがあれば、喜んでお聞きします)

前もって感謝します !

4

2 に答える 2

2

最善の解決策は、常に特定のコードで終了する例外フックを設定することです。

import sys
def excepthook(type, value, traceback):
    sys.exit(X) # X is your exit code
sys.excepthook = excepthook

構文エラーは無関係であるべきです。なぜ、構文エラーを含むスクリプトを本番環境に置くのでしょうか?

1とにかく、キャッチされない例外の場合、および0すべてがうまくいった場合、Python は常にゼロ以外のコード (明らかに常に) で終了します。

于 2012-05-09T12:23:17.697 に答える
1

これはあなたが必要としているものかもしれないと思います。エラー コードをそれぞれの文字列メッセージにマップします。

http://docs.python.org/library/errno.html

具体的には:

http://docs.python.org/library/os.html#os.strerror

于 2012-05-09T12:22:56.007 に答える