FrozenError 클래스
FrozenError 클래스 (FrozenError)
FrozenError는 동결(frozen)된 객체를 수정하려 할 때 발생해요.
[1, 2, 3].freeze << 4
이 코드는 다음과 같은 예외를 던져요.
FrozenError: can't modify frozen Array
객체를 freeze로 동결하면 수정하려는 시도 자체가 막히는 겁니다. 문자열, 배열, 해시 할 것 없이 동결된 객체에 대고 변경 메서드를 호출하면 다 FrozenError를 만나게 되죠.
출처: Ruby 4.0 API
본문
::new (Public Class Method)
new(msg=nil, receiver: nil) → frozen_error — 새 FrozenError 예외를 만들어요. receiver 파라미터를 주면 그 객체를 FrozenError#receiver 메서드로 나중에 조회할 수 있어요.
a = [].freeze
raise FrozenError.new("can't modify frozen array", receiver: a)
#receiver (Public Instance Method)
receiver → object — 이 FrozenError 예외와 연관된 receiver 객체를 돌려줘요. new에서 receiver:로 넘겨준 그 값을 그대로 보관해 두는 거예요.