Skip to content

Latest commit

 

History

History
70 lines (42 loc) · 2.94 KB

File metadata and controls

70 lines (42 loc) · 2.94 KB
title layout
プラグインでのエラーの扱い
ja

{% comment %} ############################################## THIS FILE IS AUTOMATICALLY GENERATED FROM "_po/ja/reference/1.0.4/plugin/error/index.po" DO NOT EDIT THIS FILE MANUALLY! ############################################## {% endcomment %}

  • TOC {:toc}

概要 {#abstract}

プラグイン内部で発生した例外のうち、そのプラグイン自身によって補足されなかった物は、すべて、入力メッセージに対するエラーレスポンスとして返されます。この時のエラーレスポンスのステータスコードは500(Internal Errorを意味する)です。

整形されたエラー情報を返したい場合は、低レベルのエラーを捕捉した上で、Droonga::ErrorMessage::BadRequestまたはDroonga::ErrorMessage::InternalServerErrorを継承したカスタムエラークラスでラップして再度raiseして下さい。 (ちなみに、これらの基底クラスはプラグインの名前空間に初期状態でincludeされているため、エラークラスの定義時には単にclass CustomError < BadRequestなどと書くだけで参照できます。)

組み込みのエラークラス {#builtin-errors}

組み込みのプラグインやDroonga Engine自身によってあらかじめ定義されているエラークラスとしては、以下の物があります。

Droonga::ErrorMessage::NotFound

データセットまたは指定された情報ソースの中に、探している情報が見つからなかったことを示す。例:

# 第2引数はエラーの詳細な情報。(省略可能)
raise Droonga::NotFound.new("#{name} is not found!", :elapsed_time => elapsed_time)

Droonga::ErrorMessage::BadRequest

文法エラーやバリデーションエラーなど、入力メッセージ自体にエラーが含まれていたことを示す。例:

# 第2引数はエラーの詳細な情報。(省略可能)
raise Droonga::NotFound.new("Syntax error in #{query}!", :detail => detail)

Droonga::ErrorMessage::InternalServerError

タイムアウト、ファイル入出力のエラーなど、その他の未知のエラーであることを示す。例:

# 第2引数はエラーの詳細な情報。(省略可能)
raise Droonga::MessageProcessingError.new("busy!", :elapsed_time => elapsed_time)

組み込みのステータスコード {#builtin-status-codes}

エラーのステータスコードとしては、以下のステータスコードか、もしくは慣習に従ったステータスコードを使用します。

Droonga::StatusCode::OK : 200と等価。

Droonga::StatusCode::NOT_FOUND : 404と等価。

Droonga::StatusCode::BAD_REQUEST : 400と等価。

Droonga::StatusCode::INTERNAL_ERROR : 500と等価。