本文へスキップ
BecomeCoder

Pythonコース · 第5章 関数 ― 処理に名前をつけてまとめる · レッスン22

例外処理 ― エラーに備える

ブラウザで完結

導入

プログラムは、想定外の入力などで**エラー(例外)**を起こして止まることがあります。try / except を使うと、エラーが起きても止まらずに対応できます。

説明

エラーが起きそうな処理を try: に入れ、起きたときの対応を except: に書きます。

try:
    x = int("abc")       # 数字でない文字列は変換できずエラー
    print(x)
except ValueError:
    print("数値に変換できませんでした")

try の中でエラーが出ると、残りを飛ばして except に移ります。エラーが出なければ except は実行されません。ゼロ除算など、よくあるエラーにも対応できます。

def safe_div(a, b):
    try:
        return a / b
    except ZeroDivisionError:
        return "0では割れません"

print(safe_div(10, 2))   # 5.0
print(safe_div(10, 0))   # 0では割れません

例外処理を使うと、想定外のことが起きてもプログラムを続けられます。

やってみよう

int("abc")文字列を数字に変えると except が実行されなくなります。試してみましょう。safe_div の引数もいろいろ変えてみてください。

演習

try / except を使って、int("100") を変換して表示し、もし失敗したら 変換失敗 と表示するコードを書いてください(今回は成功して 100 が出ます)。

ヒント1を見る

try:print(int("100"))except ValueError:print("変換失敗")

実際に動かしてみよう

下のエディタにPythonを書いて「実行」を押すと、ブラウザ内のPythonで出力が表示されます。本文の例をそのまま試したり、書き換えたりしてみましょう(input() を使う回は「標準入力」欄に値を入れてから実行します)。

Python — ブラウザ内で実行

ブラウザ内でPythonを動かす環境(Skulpt)を読み込みます(初回のみ少し時間がかかります)。
スクロールして表示された時点でも自動で読み込まれます。