初心者向け学習方法一覧はこちら
この記事はRubyの例外処理と配列Array,Hashへの繰り返し処理の方法について解説した記事です。
この記事ではサンプルコードを実行しながら説明しています。
Rubyの実行環境がない方はこちらの記事から先に環境構築をすることをおすすめします!
例外処理begin
例外処理とはプログラムを実行中に予期しない操作がされた場合に、特別に場合分けをして対処する処理のことです。
予期しない操作の例としては「文字列と数字の足し算」、「0での割る」等があります。
例外処理がされていないプログラムで予期しない操作がされた場合エラーが発生し、プログラムが止まってしまいます。
プログラムが止まってしまうことは、システム障害の原因にもなるため実用的なプログラムを書くのであれば例外処理をすることは必須です。
例外処理のコードは以下のように書きます。
begin
通常の処理
rescue
エラー発生時の処理
end
エラー発生時の処理はエラーの内容が把握できるようにエラー内容を出力するのが一般的です。
また、エラーごとに処理を分けたい場合は以下のように書きます。
begin
通常の処理
rescue エラー内容1
エラー発生時の処理1
rescue エラー内容2
エラー発生時の処理2
end
サンプルコードとしてa+bの割り算を計算するプログラムで数字ではなく文字列が入っている場合の例外処理を実装する場合は以下のように書きます。
a = 10
b = "0"
begin
p a + b
rescue => error
puts error.message
end
#String can't be coerced into Numeric
p "処理が完了しました。"
#"処理が完了しました。"
例外処理で重要なことはエラーメッセージが表示されているものの、処理自体は完了しているという点です。
もし、a+bの割り算を計算するプログラムで例外処理をしていない場合はこのようになります。
a = 10
b = "0"
p a + b
#<anonymous>': String can't be coerced into Numeric (TypeError)
p "処理が完了しました。"
#エラーの為実行されない!
エラーによってプログラムが止まってしまい、「p "処理が完了しました。"」の部分が実行されていません。
このようにプログラムが止まってしまわない為にも例外処理を怠らないようにしましょう!
繰り返し処理each
配列の要素に対して繰り返し処理をするにはArrayのeachメソッドを使用します。
繰り返し処理とは同じ処理を繰り返し行う処理のことです。
繰り返し処理についてはこちらの記事で詳しく解説しております。
配列に対して繰り返し処理を行いたい場合には「eachメソッド」を使用します。
eachメソッドを使用するには以下のようにします。
配列.each do |要素を受け取る変数|
処理
end
配列に対して繰り返し処理を行うケースとして条件を満たした要素だけを配列から取り出したい場合があります。
lengthメソッドを使用して文字列の長さを取得し、5文字以下の配列の要素のみを出力するサンプルコードはこのようになります。
array = ["BBBBbb","AAAa","bbBB","aaaAAA"]
array.each do |value|
if value.length<=5
p value
end
end
#"AAAa"
#"bbBB"
要素に加えてさらにインデックス番号も受け取りたい場合は「each_with_indexメソッド」を使用します。
インデックス番号を受け取りたいの場合のサンプルコードはこのようになります。
range = ["apple","orange","grape"]
range.each_with_index do |value,idx|
puts(idx.to_s+" "+value)
end
#0 apple
#1 orange
#2 grape
この際受け取る変数が、要素を受け取る変数,インデックス番号を受け取る変数の順番になっていることに注意しましょう。
まとめ
例外処理はエラーによってプログラムが止まることを防ぐ為の処理で以下のように書く。
begin
通常の処理
rescue
エラー発生時の処理
end
配列への繰り返し処理はeachメソッドを使用し以下のように書く。
配列.each do |要素を受け取る変数|
処理
end
また、他にもRuby初学者に向けた解説をしています。
こちらの記事も是非どうぞ!
プログラミングスクールの選び方
転職を検討中の方向け
フリーランス・副業で活躍したい方向け
教養・キャリアアップしたい方向け
給付金について詳しく知りたい方向け