[Rails] 에러 핸들링

Jinsu Kim·2023년 2월 20일
0

rails

목록 보기
5/7

ruby의 기본 rescue문법

def test_method
rescue StandardError => e
  p "resuce에서 처리할 로직구현"
  nil
end

def test_method2
  begin
    raise StandardError, "raise처리"
  rescue StandartError => e
    puts e.message
  end
end

실제 사용 예시

예시가 생각이 안나서 대충 이런식으로 많이 작성하는 거 같다~로 작성하였으니, 가볍게 봐주시면 감사하겠습니다.

# 이런식으로도 사용가능
Class user
  class DuplicatedCodeError < StandardError; end
  def initialize(name, age)
    @user = user
    @age = age
    
    freeze
  end
  
  def create_user_code
    code = Code.new(parameters)

    # 하나의 예시로 가볍게 봐주시면 감사하겠습니다
    raise DuplicatedCodeError if code.valid?
  rescue DuplicatedCodeError => e
    p "DuplicatedCodeError발생! #{e}"
  rescue StandardError => e
    p "StandardError발생!"
  end
end

Rails 코드를 보면 StandardError를 rescue로 해논것도 있지만 어떤 에러를 캐치할지 더 명확하게 지정해주면 어디서 어떤 에러가 발생하였는지 명확하게 알 수 있는 메리트가 있다. 따라서 에러핸들링을 할 경우 가능한 한 상황에 맞는 에러Class를 사용하면 좋을 것 같다

개인적인 생각

개인적인 생각으로는 어떤 에러가 발생할지 명확하지 않을 경우 StandardError를 작성해서 어떤 에러가 발생하는지 확인 → 그 뒤에 조금더 상세하게 로직을 구현하면 좋지않을까 생각했다🤔

코멘트

자신의 코드나 회사에서 어떤 식으로 작성하시는지 코멘트 작성해주시면 감사드리겠습니다!
다른 언어도 환영이에요!

profile
Ruby와 js로 첫 커리어를 시작하였고 3년차 엔진니어입니다! vim에 관심이 많습니다!

0개의 댓글