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를 작성해서 어떤 에러가 발생하는지 확인 → 그 뒤에 조금더 상세하게 로직을 구현하면 좋지않을까 생각했다🤔
자신의 코드나 회사에서 어떤 식으로 작성하시는지 코멘트 작성해주시면 감사드리겠습니다!
다른 언어도 환영이에요!