面试题答案
一键面试- 会发生的情况:
当对已经
freeze
的数组arr
调用arr << 4
时,会抛出RuntimeError
,错误信息类似于can't modify frozen Array
。这是因为freeze
方法将数组对象标记为不可变,一旦数组被冻结,对其进行任何修改操作(如添加元素、删除元素、修改元素值等)都会导致运行时错误。 - 正确捕获该错误的代码示例:
arr = [1, 2, 3]
arr.freeze
begin
arr << 4
rescue RuntimeError => e
puts "捕获到错误: #{e.message}"
end