まず結論
try except は、エラーが起きたときの処理を用意する書き方です。
try:
number = int(input("数字を入力: "))
print(number)
except ValueError:
print("数字を入力してください")
数字に変換できない入力が来ても、プログラム全体が止まらずにメッセージを表示できます。
読む目安
次のような疑問がある人向けです。
tryとexceptの役割が分からない- エラーをどう扱えばいいか分からない
- とりあえず全部
exceptにしていいのか迷う
try except は、エラーが起きる可能性を考えておくための書き方です。
イメージで考える
try は、少し危ない橋を渡ってみる場所です。
橋の途中で ValueError が起きたら、except 側の安全な道へ進みます。
何でも隠すためではなく、起きそうなエラーに対して案内板を用意しておく仕組みです。
tryに試す処理を書く
try の中には、エラーが起きるかもしれない処理を書きます。
try:
number = int("abc")
この例では、int("abc") で ValueError が起きます。
exceptに対応を書く
except には、エラーが起きたときの処理を書きます。
try:
number = int("abc")
except ValueError:
print("変換できません")
この場合、エラー表示の代わりに 変換できません と表示されます。
エラーの種類を書く
except には、できるだけエラーの種類を書きます。
except ValueError:
何でも受け取る except: だけにすると、本当の原因まで隠れてしまうことがあります。
エラーをなかったことにしない
try except は、エラーを消すためだけのものではありません。
起きたエラーに対して、分かりやすい案内を出したり、別の処理に進んだりするためのものです。
読み方のコツ
try は「試す」、except は「このエラーが起きたら」と読みます。
まずは ValueError や FileNotFoundError のように、具体的なエラーを指定する形から覚えると安全です。
手を動かすミニ練習
数字にできない入力が来たときの処理を書いてみましょう。
text = "abc"
try:
number = int(text)
print(number)
except ValueError:
print("数字にできません")
try の中でエラーが起きると、対応する except 側に進みます。
3行まとめ
- tryにはエラーが起きるかもしれない処理を書く。
- exceptにはエラーが起きたときの処理を書く。
- 何でもexceptで隠すと原因が分かりにくくなる。