質問。

make_the_file unless Filetest.exist?(file)
file読み込み処理

と

begin
 file読み込み処理
rescue Errno::ENOENT
 make_the_file
 retry
end

ってどっちが「普通」ですか?

前者は Filetest.exist? が毎回必ずディスクを余分に読みますよね
例外を待ち構えて例外が起こったときに対処したほうが素直ですか?