Rubyがミニツク

あなたのRubyの技術に関するより詳しい知識と理解を増やします。

Ruby入門コース

このコースについて

Rubyのeラーニング研修システムはRailsを使ってWebアプリケーション開発ができる技術者の育成を目指します。 そのため、Railsを扱うことができるだけのRubyの知識を得ることがRuby入門コースの目標となっています。

コンテンツ一覧

ヒント レッスンの名前をクリックすると、その内容を表示します。

次のレッスン ホームへ戻る

例外処理レッスンのドリル

コンテンツ概要

このドリルを学習して、Ruby入門コースのレッスン「例外処理」の内容を理解しているか確かめましょう。

このドリルは10問の問題があります。


はじめる

問題

以下のコードを実行した結果、標準出力に出力する値として正しいものを選択肢の中から選択してください。

begin
  raise RuntimeError 
rescue StandardError
  puts("StandardError")
rescue ZeroDivisionError
  puts("ZeroDivisionError")
rescue RuntimeError
  puts("RuntimeError")
rescue
  puts("Exception")
end

選択肢を選ぶ

Exception

ZeroDivisionError

StandardError

RuntimeError


次の問題へ進む

問題

以下のプログラムの(A)に正しい選択肢を入れて実行した時、ローカル変数exに例外オブジェクトが代入されます。正しいと思われるものを選択肢の中から選択してください。

begin
  raise
rescue (A) ex
  p ex
end

選択肢を選ぶ

<=>

=>

>

=


次の問題へ進む

問題

以下のコードで発生する例外として正しいものを選択肢の中から選択してください。

raise

選択肢を選ぶ

RuntimeError例外

StandardError例外

ArgumentError例外

Exception例外


次の問題へ進む

問題

以下のプログラムの(A)に正しい選択肢を入れて実行した時、rescueが捕捉した例外に対する例外オブジェクトのクラス名が標準出力に出力されます。正しいと思われるものを選択肢の中から選択してください。

def foo
end

begin
  foo(42)
rescue (A) => ex
  p ex.class
end

選択肢を選ぶ

NameError

TypeError

ArgumentError

IOError


次の問題へ進む

問題

以下のプログラムの(A)に正しい選択肢を入れて実行した時、エラーの発生の有無に関わらず、必ずbarを出力結果に出力します。正しいと思われるものを選択肢の中から選択してください。

プログラム

begin
  raise
(A)
  puts("bar")
end

出力結果

bar

選択肢を選ぶ

rescue

retry

ensure

break


次の問題へ進む

問題

以下のコードを実行した結果、正しいと思われるものを選択肢の中から選択してください。

class Foo
  raise
rescue 
end
p Foo

選択肢を選ぶ

RuntimeError例外が発生して、処理が止まる。

nilが標準出力に出力される。

Fooが標準出力に出力される。

NameError例外が発生して、処理が止まる。


次の問題へ進む

問題

以下のコードを実行した結果、標準出力に出力されるものとして正しいものを選択肢の中から選択してください。

def foo
  bar
rescue
  puts("foo")
end

def bar
  baz
rescue
  puts("bar")
end

def baz
  hoge
  begin
    hoge
  rescue
    puts("baz")
  end
end

def hoge
  raise
  puts("hoge")
end

foo

選択肢を選ぶ

foo

baz

bar

hoge


次の問題へ進む

問題

以下のプログラムの(A)に入れて、正しいと思われるものを選択肢の中から選択してください。

プログラム

begin
  raise StandardError
rescue => ex
  p ex.(A)
end

出力結果

StandardError

選択肢を選ぶ

backtrace

message

set_backtrace

class


次の問題へ進む

問題

以下のコードの(A)に選択肢を入れて実行した時、ファイルを開けなかったら再入力を促します。この正しいと思われるものを選択肢の中から選択してください。

puts("ファイルのパスを入力してください。")
begin
  while path = gets.chomp
    break if path == "exit" 
    File.open(path) {|f| puts(f.read) }
  end
rescue
  puts("ファイルを開くのに失敗しました。")
  puts("ファイルのパスを再入力してください。")
  (A)
end

選択肢を選ぶ

next

redo

retry

break


次の問題へ進む

問題

以下のプログラムの(A)に正しい選択肢を入れて実行した時、標準出力にfooが出力されます。正しいと思われるものを選択肢の中から選択してください。

プログラム

(A)
  raise
rescue
  puts("foo")
end

出力結果

foo

選択肢を選ぶ

begin

ensure

do

start


次のレッスン ホームへ戻る