Python:
エラー処理

どのように:

# 基本的なtry-exceptブロック
try:
    # リスクのあるコード
    number = int(input("Enter a number: "))
except ValueError:
    # エラー処理
    print("That's not a number!")

# 複数の例外を指定
try:
    # 異なる例外を発生させるかもしれないコード
    result = 10 / int(input("Enter a divisor: "))
except ZeroDivisionError:
    print("Oops! Can't divide by zero.")
except ValueError:
    print("I need a number, buddy.")

# elseとfinallyの使用
try:
    number = int(input("Enter a number for squaring: "))
except ValueError:
    print("I said a number!")
else:
    # エラーが発生しなかった
    print("Your number squared is:", number**2)
finally:
    # 常に実行される
    print("Thanks for trying this out!")

最初のブロックに無効な数値を入力した場合のサンプル出力:

Enter a number: hello
That's not a number!

ディープダイブ

プログラミングが始まって以来、エラー処理は重要でした。初期のアプローチは基本的なもので、リスクのある操作の前に条件をチェックするようにしていました。Pythonのtry-except構文は、C++やJavaなどの古い言語での例外処理の遺産から来ており、プロセスを単純化しています。

tryブロックのコードを試すとき、Pythonはいかなる例外も監視します。もしエラーが出現したら、exceptブロックがそれを捕捉します。捕捉する例外を具体的にしたり、一般的なexceptですべてを捕捉したりできます。しかし、具体的にする方がより良いアプローチです。それは精確で、ただの全てをキャッチする網ではありません。

elsefinallyはこの概念の追加要素です。elseブロックはtryブロックがエラーなしで実行された場合に動作します。finallyは何があっても実行される信頼できる仲間です。クリーンアップ操作などを考えてください。

他の選択肢はありますか?確かにあります。一部の言語は例外の代わりに戻り値コードを使用します。リソースの管理にwithステートメントや、開発中に条件をチェックするassertionsに遭遇することもあるでしょう。しかし、信頼できるエラー処理戦略について話すとき、try-catchモデルはその可読性と構造で際立っています。

参考資料

さらに深く掘り下げるためのいくつかの優れた追加資料です: