まず結論

try except は、エラーが起きたときの処理を用意する書き方です。

try:
    number = int(input("数字を入力: "))
    print(number)
except ValueError:
    print("数字を入力してください")

数字に変換できない入力が来ても、プログラム全体が止まらずにメッセージを表示できます。

こんなときに読む記事です

次のような疑問がある人向けです。

  • tryexcept の役割が分からない
  • エラーをどう扱えばいいか分からない
  • とりあえず全部 except にしていいのか迷う

try 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 は「このエラーが起きたら」と読みます。
まずは ValueErrorFileNotFoundError のように、具体的なエラーを指定する形から覚えると安全です。