[解決済み] RubyやRailsで独自のエラータイプを定義するには?
2022-04-26 08:16:41
質問
Rubyライブラリ(gem)またはRuby on Railsアプリケーションでカスタムエラータイプを定義するためのベストプラクティスはありますか?具体的には
- プロジェクトの構造的にどこに属するか?別のファイルで、関連するモジュールやクラスの定義と一緒にインライン化され、どこか他の場所にあるのでしょうか?
- を定義する規約はありますか? から とは にあらず は新しいエラータイプを作成しますか?
ライブラリによってやり方が違うので、本当の意味でのパターンには気づいていません。あるライブラリは常にカスタムエラータイプを使用し、他のライブラリは全く使用しません。あるライブラリはすべてのエラーがStandardErrorを拡張し、他のライブラリはネストした階層を持ちます。
それと、これらをquot;エラータイプと呼ぶと曖昧になるような気がするので、どういう意味かというと、次のようなことです。
class AuthenticationError < StandardError; end
class InvalidUsername < AuthenticationError; end
解決方法は?
ジェム用
このように例外を定義しているのを何度も見たことがあります。
gem_dir/lib/gem_name/exceptions.rb
と定義されています。
module GemName
class AuthenticationError < StandardError; end
class InvalidUsername < AuthenticationError; end
end
には、このような例があります。 HTTPパーティ
Ruby on Railsの場合
lib/フォルダのexceptions.rbというファイルの下に置き、以下のようにします。
module Exceptions
class AuthenticationError < StandardError; end
class InvalidUsername < AuthenticationError; end
end
で、このように使うことになります。
raise Exceptions::InvalidUsername
関連
-
[解決済み] RailsのRootディレクトリのパス?
-
[解決済み] Ruby on Railsのデータベースをパージまたは再作成する
-
[解決済み] Ruby on Railsのマイグレーションでデータベースのカラムの名前を変更するにはどうすればよいですか?
-
[解決済み] Ruby on Railsで現在の絶対URLを取得するにはどうすればよいですか?
-
[解決済み] エラーが発生しました。pgsqlをrailsで動作させようとすると、Peer authentication failed for user "postgres" と表示されます。
-
[解決済み] Ruby on RailsでJSON出力を "きれい "にフォーマットする方法
-
[解決済み] Ruby/RailsでHashからキーを削除して残りのHashを取得する方法は?
-
[解決済み] RubyでBegin, Rescue, Ensure?
-
[解決済み】railsでカスタム設定変数を定義する方法
-
[解決済み】RubyにあってPythonにないもの、またその逆は何ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Rails 4 RoutingError: ルートが一致しない[POST]。
-
[解決済み] Railsです。NameError: 初期化されていない定数
-
[解決済み] 該当するルートがない [GET] "demo/hello"
-
[解決済み] Ruby on rails "No route matches" (ルートに一致するものがない)。
-
[解決済み] Railsで `before_action` での `only:` はどのように機能するのですか?
-
[解決済み] RVMでRubyのデフォルトバージョンを設定するには?
-
[解決済み] Ruby: public static メソッドを作るには?
-
[解決済み] railsで':remote => true'はどのように動作するのでしょうか?
-
[解決済み] ActionController::RoutingError: 初期化されていない定数MicropostsController
-
[解決済み] Ruby on Rails の新規セットアップ : "Expected string default value for '--rc'; got false (boolean)".