ファイルが存在しなかったときに備える
ファイルを読み込もうとしたときに、そのファイルが存在しないとエラーが発生してプログラムが止まってしまいます。
text = File.read("dummy.txt")カレントディレクトリ(Rubyプログラムを実行しているディレクトリ)にdummy.txtというファイルが存在しないと、ファイルの読み込みに失敗して次のようなエラーメッセージが表示されます。
test.rb:1:in `read': No such file or directory - dummy.txt (Errno::ENOENT) from test.rb:1このようなエラーの発生はは例外処理を使ことで回避することできます。begin〜rescueを使うと読み込みに失敗したとき(例外が発生したとき)の処理を書くことができます。
test = "" fname = "dummy.txt" begin text = File.read(fname) rescue puts "ファイル<#{fname}>の読み込みに失敗しました" endbegin〜rescue間で例外が発生すると、rescue〜end間のコードが実行されます。上記のプログラムではputsメソッドが実行されることになります。そしてrescue〜end間が実行された後は、引き続きendに続く行が実行され、ファイルの読み込みに失敗した後も、プログラムは止まらずに走り続けます。