2

アプリ エンジンの app.yaml ファイルに次のエラー ハンドラを追加しました。

error_handlers:
- file: default_error.html

次に、強制的な DeadlineExceededError でテストする予定でした

だから私はリクエストハンドラーを持っています:

class Timeout(webapp.RequestHandler):
  def get(self):
    count=100
    if self.request.get('count'):
        count=int(self.request.get('count'))
    time.sleep(count)

http://20-social.race-timing-failsafe.appspot.com/timeout?count=100を呼び出し、default_error.html ファイルが表示されることを期待します。

代わりに、次のように表示されます。

A server error occurred.  Please contact the administrator.

これは、time.sleep によって人為的な締め切りが超過したことが原因である可能性があります。構文エラーの場合と「実際の」締め切りがメッセージを超えた場合 (たとえば、データストアへの書き込み時のタイムアウト)、うまくいけばクォータを超えた場合に機能するようです。

A server error occurred. Please contact the administrator.メッセージの原因は何ですか? そして、それはどこから来ているのですか?Google appengine sdk python コードを検索しましたが、見つかりませんでした。

ありがとう。

4

1 に答える 1

1

そのエラー メッセージは Google のものではないため、スタック内の別の何かが例外をトラップしてその応答を返しているようです。

そのデフォルトのエラー ハンドラーは、例外がアプリケーションのどこにもキャッチされていない場合にのみ提供されます。

たとえば、webapp を開始する前に raise StringError を貼り付けて、何が起こるかを確認してください ;-)

于 2012-06-10T02:24:04.477 に答える