{category}

Python - 例外処理

except

エクセプト(制御構文

意味 エラー発生時の処理


exceptとは?

プログラム実行中にエラーが発生するかもしれない場合に、そのエラーの種類を指定して、もし発生したらどのように対処するかを記述するために使います。

exceptの具体的な使い方

複数の例外処理

def divide(a, b):
    try:
        result = a / b
        print(f'{a} ÷ {b} = {result}')
    except ZeroDivisionError:
        print('エラー: 0で割ることはできません。')
    except TypeError:
        print('エラー: 数値を入力してください。')
    except Exception as e:
        print(f'予期せぬエラーが発生しました: {e}')

divide(10, 2)
divide(10, 0)
divide('10', 2)
divide(10, '2')

👇出力結果

10 ÷ 2 = 5.0
エラー: 0で割ることはできません。
エラー: 数値を入力してください。
エラー: 数値を入力してください。

この例では、除算を行う関数を定義し、異なる種類の例外を処理しています。ZeroDivisionErrorは0で割ろうとした場合、TypeErrorは数値以外の入力がある場合に発生します。最後のExceptionは、他の全ての例外をキャッチします。

例外の情報を利用する

import sys

try:
    x = int(input('整数を入力してください: '))
    y = 100 / x
except ValueError as ve:
    print(f'ValueError: {ve}')
    print('整数を入力してください。')
except ZeroDivisionError as zde:
    print(f'ZeroDivisionError: {zde}')
    print('0以外の数を入力してください。')
except:
    print(f'予期せぬエラーが発生しました: {sys.exc_info()[0]}')
else:
    print(f'100 ÷ {x} = {y}')
finally:
    print('プログラムを終了します。')

👇出力結果

整数を入力してください: 0
ZeroDivisionError: division by zero
0以外の数を入力してください。
プログラムを終了します。

この例では、ユーザーからの入力を受け取り、100をその数で割る計算を行います。ValueErrorとZeroDivisionErrorを個別に処理し、例外オブジェクトの情報を表示しています。また、予期せぬエラーに対してもキャッチしています。elseブロックは例外が発生しなかった場合に実行され、finallyブロックは常に実行されます。

exceptに関するよくある質問

Q. exceptで全てのエラーを捕捉できる?
A. はい、except:と指定すると全ての例外を捕捉できます。ただし、特定のエラーに対して適切な処理をするためには、個別のエラータイプを指定することをお勧めします。
Q. exceptの後にelseは使える?
A. はい、try-except構文の後にelseブロックを追加できます。elseブロックは、tryブロック内でエラーが発生しなかった場合に実行されます。
Q. exceptで複数のエラーを指定できる?
A. はい、カッコを使って複数のエラータイプをタプルとして指定できます。例:except (TypeError, ValueError):のように書くことで、TypeErrorとValueErrorの両方を捕捉できます。

Pythonのexceptについても学べる書籍の紹介

「プログラミング単語帳」を使って、プログラミングの単語を英単語のように学習してみませんか?
プログラミング単語帳には、Pythonのexceptやpass、not、else、などのような実務でよく使われる単語が数百以上収録されています。
この書籍には、プログラミングの単語の意味や読み方、単語の使い方がわかる例文などが掲載されており、いつでもどこでもプログラミングの学習ができます。

よく使われる単語にだけ絞って学習することができるので、効率的にプログラミングが学習できます。

1日5分の暗記でプログラミンが身に付く!プログラミング単語帳 公式ストアで発売中!

HTML編、CSS編、JavaScript編、PHP編、Ruby編、その他単語編の6シリーズ分が公式ストアにて販売中です。気になった方はぜひ購入してみてください。


Pythonを学べる「プログラミング単語帳」アプリ

プログラミング単語帳がアプリになりました!Pythonはもちろん、10種類のプログラミング言語の中から、よく使われる単語をスマホで学習できます。

収録単語は2,000単語以上!
現在は、HTML、CSS、JavaScirpt、PHP、Laravel、Ruby、Python、MySQL、Linux、など10カテゴリーの単語帳が1つのアプリに収録されています。

いつでも、どこでも、隙間時間を有効活用して、プログラミングを効率的に学べるので、ぜひダウンロードしてみてください。

2024年7月アップデート情報:「Laravel」カテゴリーが追加されましました!

2024年8月アップデート情報:「MySQL」「Linux」カテゴリーが追加されましました!


関連するそのほかの単語

pass

何もしない

種類: その他

not

条件を反転

種類: 条件式

else

もし違うなら実行

種類: 条件分岐

tkinter

Pythonに最初から入っているGUIツール

種類: GUIフレームワーク

union

集合の和集合を求める

種類: 集合操作