Rubyのrescueで特定の例外のみ捕捉する方法

Ruby

Rubyの`rescue`を使って、特定の例外だけを捕捉する方法について説明します。初心者の方やエラーハンドリングに慣れていない方も、この記事を読めば特定の例外を効率的に扱えるようになります。

1. Rubyのrescueで例外を捕捉する基本

Rubyでは、例外が発生した際に`rescue`ブロックを使用してエラー処理を行います。通常、`rescue`は全ての例外を捕捉するため、特定の例外だけを捕まえる方法を知っておくことが大切です。

基本的な使い方として、以下のように記述します。

begin
  # 何らかの処理
rescue => e
  # エラー処理
end

これにより、発生したすべての例外が`rescue`ブロックで捕捉されます。

2. 特定の例外だけを捕捉する方法

Rubyで特定の例外のみを捕捉するには、`rescue`ブロックの後に捕捉したい例外のクラスを指定します。

例えば、`ZeroDivisionError`のみを捕捉する場合は、以下のように記述します。

begin
  # 何らかの処理
rescue ZeroDivisionError => e
  puts 'ゼロで割り算を試みました。'
end

これにより、`ZeroDivisionError`が発生した場合にのみ、`rescue`ブロックが実行され、それ以外のエラーは無視されます。

3. 複数の例外を捕捉する方法

複数の例外を捕捉したい場合、`rescue`の後に複数の例外クラスを指定することもできます。以下のように、カンマで区切って複数の例外を指定できます。

begin
  # 何らかの処理
rescue ZeroDivisionError, ArgumentError => e
  puts 'エラーが発生しました'
end

これにより、`ZeroDivisionError`または`ArgumentError`のどちらかが発生した場合に、同じエラー処理が行われます。

4. 例外を捕捉しない方法

もし、特定の例外だけを捕捉せず、他の例外を捕捉したい場合、`rescue`ブロックを省略したり、`else`を使って特定の条件下で例外処理を行わないように設定することができます。

以下のコードでは、`ZeroDivisionError`のみ捕捉し、他の例外は無視します。

begin
  # 何らかの処理
rescue ZeroDivisionError => e
  puts 'ゼロで割り算を試みました。'
end

まとめ

Rubyでは、`rescue`を使って特定の例外を捕捉することができます。特定のエラーだけを処理することで、より効率的なエラーハンドリングが可能になります。もし複数の例外を扱いたい場合や、特定の例外を無視したい場合にも柔軟に対応できるので、実際にコードを書きながら試してみてください。

コメント

タイトルとURLをコピーしました