web2pyのエラーログにエラーチケットを追加したいが、依然としてカスタムページを返す。これを行う方法はありますか?何らかのアクション固有のエラー?特定のアクションに対して、エラーページを表示せずにweb2pyでエラーチケットを作成できますか?
アプリごとの静的エラーを返すようにしたい場合は、HTMLページにリダイレクトすることができます - ドキュメントとroutes.py例えばhereを参照してください。
routes_onerror = [
('init/400', '/init/default/login'),
('init/*', '/init/static/fail.html'),
('*/404', '/init/static/cantfind.html'),
('*/*', '/init/error/index')
]
しかし、アクションごとにこれを行うにはどのような方法?
ありがとう! routes.pyを使って500sをアクションにマッピングすると、私はアプリケーション全体に500sをマッピングします。私が扱うことに興味がある特定のアクションの条件付きコードでその作業を行うことができますが、単一のグローバルアクションでページ固有のエラー処理コードを持つアンチパターンのように感じます。 – Chris
プロダクションアプリケーションでは、通常、デフォルトのエラーページ(ユーザーがアクセスできないチケットリンクを単に表示する)をカスタムエラーページに置き換えます。したがって、(特定のタイプの)すべてのエラーを(特定のエラーソースに応じてさらにロジックにルーティングできる)単一のハンドラにルーティングすることは、私にとって妥当なパターンのようです。しかし、実際には単一のアクションに対して特別なエラー処理が必要な場合は、標準の 'try/except'ブロックを使用してエラーをキャッチするだけで十分です。 – Anthony
理想的には、(1)web2pyチケットとして例外を記録する、(2)そのページのユーザーに特別なエラー応答を表示する、(3)エラーハンドラに特殊なケースコードを付けないでください。上記の解は(1)を除いて(2)と(3)を得て、特別なエラー経路を使うと(3)を除いて(1)と(2)を得る。しかし、提案を感謝します。 – Chris