はじめに
みなさん、こんにちは torihaziです
書き殴りメモです!
raiseの3種類の使い方
# パターン1
raise "エラーメッセージ"
# パターン2
raise ErrorClass, "エラーメッセージ"
# パターン3
raise ErrorClass.new("エラーメッセージ")
# シンプルな例 raise "Invalid value" # エラークラスを指定する例 raise ArgumentError, "Invalid argument" # 条件付きで発生させる例 raise "Invalid age" if age < 0 # 独自のエラークラスを使用する例 class MyCustomError < StandardError; end raise MyCustomError, "Something went wrong"
大抵ApplicationControllerに書いてrescue_fromと合わせて使うそう!
このエラーが発生したらwithで指定したメソッドを発火させるみたいな!
なるほど!
class ApplicationController < ActionController::Base
rescue_from StandardError, with: :handle_standard_error
rescue_from ActiveRecord::RecordNotFound, with: :handle_not_found
private
def handle_standard_error(error)
# エラーログを残したり
Rails.logger.error(error.message)
# JSONレスポンスを返したり
render json: { error: error.message }, status: :internal_server_error
end
def handle_not_found(error)
render json: { error: "Resource not found" }, status: :not_found
end
end
終わりに
また一歩成長!
以上!