tswi's dev

動くものが正しいものだ

Rubyの学習(第5回)

例外処理

begin-rescue-ensure-endの形式で記載する。
rescureの"=> 変数"、またensure句はオプション。
なお、"raise"によって例外を発生させることもできる。

begin
  puts "raise exception"
  raise "Exception"
rescue => ex
  puts ex
  puts "classname : #{ex.class.name}"
  puts "message : #{ex.message}"
ensure
  puts "is ensure"
end

特定の例外を取得する場合、以下のように指定する

begin
  # 例外が発生する可能性のある処理
rescue Errno::EXXX
  # EXXX例外捕捉時の処理
end

メソッド

以下のように記載する。

# def-endで定義する
def test_method(arg1, arg2)
  puts arg1 + arg2
end

# メソッドの呼び出し
test_method(1, 2)
#=> 3

メソッド定義を行う際、引数にデフォルト値を設定することができる。
メソッド呼び出し時に引数を渡さない場合、定義したデフォルト値で処理を実行する。

def test_method_default(arg1 = 10, arg2 = 20)
  puts arg1 + arg2
end

test_method_default
#=> 30
test_method_default(1)
#=> 21
test_method_default(1, 2)
#=> 3


便利な機能があってモダンな印象。
次回はクラスの定義。