Pythonでの例外処理:TryExceptを使用した例外の処理

公開: 2021-06-29

エラーが発生している間、Pythonのプログラムは終了します。 エラーは通常、実行を停止するプログラムで発生する問題です。 エラーは、構文エラーが原因であるか、例外である可能性があります。 パーサーによって誤ったステートメントが検出されると、構文エラーが発生します。

ただし、正しい構文のコードでエラーが発生した場合、それは例外と呼ばれます。 さまざまな組み込みの例外がPythonで利用できます。 これらは、プログラムの通常のフローが変更される内部イベントの発生とともに発生します。

したがって、例外は、コードの中断をもたらし、プログラムフローが中止される特定の異常なプログラム条件として定義される場合があります。

プログラムの実行は、例外が発生するとすぐに停止します。 これにより、実行するコードがさらに停止します。 したがって、例外は、Pythonスクリプトで処理できない実行時の結果としてのエラーです。

Pythonでの例外処理の場合、スクリプト言語pythonは、コードの実行が続行され、中断が発生しないようにするためのソリューションを提供します。 例外処理がない場合、例外をスローするコードの後に​​存在するコードの実行が停止します。

いくつかの組み込みオプションがPythonで利用可能であり、一般的な例外を含め、中断することなくプログラムを実行できます。 これに加えて、 Pythonカスタム例外の規定があります Pythonプログラムの場合、スローされる可能性のある一般的な例外は次のとおりです。

  • ZeroDivisionError:このタイプの例外は、数値を除算するためにゼロが使用された場合に発生します。
  • NameError:プログラムがグローバルまたはローカルの名前を見つけられない場合は常に、このタイプの例外が発生します。
  • IndentationError:インデントが正しくないと、indentationErrorが発生します。
  • IOError :入出力操作が失敗すると、IOErrorが発生します。
  • EOFError:プログラムの連続動作で発生するのは、

ファイルの終わりに達しました。

目次

例外を発生させる

特定の条件下で例外をスローするために、レイズが使用されます。
プログラムの実行が停止され、関連する例外が画面に表示されます。 例外の表示により、ユーザーは根本的な問題が何であるかを知ることができます。

Pythonでは、raise句を使用して、例外を発生させることができます。 このアプリケーションは、例外を発生させてプログラムを停止する必要がある場合に役立ちます。

次に例を示します。プログラムの実行に約1GBのメモリが必要であり、1 GBを占有しようとすると、プログラムの実行を停止するために例外がスローされる可能性があります。

例外を発生させるための構文:

Exception_class、<value>

したがって、

  • 「raise」は、プログラムで例外を発生させるために使用されます。
  • 括弧に指定できる例外に値を指定できます。
  • 値へのアクセスは、キーワード「as」を使用して行うことができます。 例外に与えられた値は、「e」で示される参照変数に格納できます。
  • 例外タイプを指定するために、値を例外に渡すことができます。

AssertionError

プログラムをクラッシュさせる代わりに、Pythonでアサーションを作成できます。 プログラムによって特定の条件が満たされているというアサーションが作成されます。 条件が真の場合、プログラムは実行を継続します。 それ以外の場合、条件がfalseであることが判明すると、プログラムによってAssertionError例外がスローされます。

tryおよびexceptブロックによる例外の処理

Pythonでスローされた例外はキャッチされ、Pythonのtryおよびexceptブロックによって処理されます。 tryブロック内のコードは、通常、プログラムの一部として実行されます。 もう1つのブロックには、プログラムによってtryブロックでスローされた例外に応答して実行されるステートメントが含まれています。

プログラムは、構文的に正しいコードでエラーが発生するたびに例外をスローします。 スローされた例外が適切に処理されない場合、プログラムがクラッシュします。 このようなシナリオでは、exceptブロックがその例外に対するプログラムの応答を決定します。

tryおよびexcept句の適用は、前述のソースから抜粋した次の例から最もよく理解できます。

この場合、例外が発生するたびに、プログラムは実行を継続し、空白の出力を提供するのではなく、プログラムが成功しなかったことをユーザーに通知します。

チェックアウト:Pythonプロジェクトのアイデアとトピック

プログラムは、関数の呼び出しによってスローされたエラータイプを示しました。 ただし、関数によってスローされたエラーをキャッチして、実際に何がうまくいかなかったのかを知ることができます。

Windowsマシンでコードを実行すると、次のように生成されます

最初に表示されるメッセージは、Linuxオペレーティングシステムのシステムでのみ関数を実行できることをユーザーに通知するAssertionErrorを示しています。 2番目のメッセージは、どの関数を実行できなかったかについての情報をさらに提供します。
file.logが「file.logを開けませんでした」というメッセージを含む出力を生成する場合は存在しません。

情報をユーザーに中継するメッセージであるため、プログラムは引き続き実行されます。 多くの組み込みの例外がPythonドキュメントで利用可能です。 説明されている1つの例外を以下に示します。

この場合、file.logが存在しないと、次の出力が生成されます。

try句でより多くの関数呼び出しを使用すると、さまざまな例外をキャッチできます。 ただし、例外を検出すると、try句のステートメントは停止します。

else句

ステートメントのelse句を使用すると、例外がない場合にのみステートメントのブロックを実行するようにプログラムに指示するのに役立ちます。

else句は、例外がなかったためにのみ実行されました。 コードに例外が含まれている場合、次のようになります。

Pythonカスタム例外

Pythonには、プログラムに問題がある場合にエラーをスローする組み込みの例外がいくつかあります。 ただし、ユーザーは、目的を果たすために、カスタマイズされた例外をいくつか作成する必要があります。

カスタム例外を定義するための新しいクラスを作成できます。 直接的または間接的に、これらのクラスは組み込み例外のクラスから派生する必要があります。

クラスExceptionから継承されるユーザー定義クラスCustomErrorが作成されます。 他の例外と同様に、これらの例外も、オプションのエラーメッセージとともに「raise」を使用して発生します。

大規模なPythonプログラムの開発がある場合は常に、ユーザー定義の例外を別のファイルに配置する必要があります。 通常、これを行うことをお勧めします。その後に、例外がerrors.pyまたはexceptions.pyとして個別に定義されているほとんどの標準モジュールが続きます。

Pythonカスタム例外は単純であり、通常のクラスはすべてを実装するため、それらも同じように実行されます。

構文と例

aとbの2つの変数を考えてみましょう。 変数への入力はユーザーから取得され、数値の除算が実行されます。 ここで、ユーザーが入力した分母がゼロの場合。

これらの例外を処理するために、try-exceptブロックをプログラムに追加できます。 例外のスローの疑いにつながるあらゆるタイプのコード。 ステートメントのtryブロックに配置する必要があります。

tryブロックの構文

試す:

#コード

例外1を除く:

#コード

例外2を除く:

#コード

#コード

これは、コードがtryブロックに配置され、コードに例外がない場合に実行されるtry-exceptステートメントの使用法を示しています。

try-exceptを使用したelseステートメントの構文

試す

#tryステートメント

例外1を除く

#コード

そうしないと

#例外がない場合のコードの実行

いくつかの重要なポイント:

  • 例外は、Pythonの例外ステートメントで指定することはできません。
  • さまざまなタイプの例外をスローできるtryブロック内に多くのステートメントが存在する可能性があるため、tryブロックを使用してコード内で複数の例外を宣言できます。
  • elseブロックは、tryブロックによってスローされた例外がない場合に実行されるtryブロックで指定できます。
  • elseブロックには、例外のスローを担当しないステートメントが含まれている必要があります。

また読む:Pythonが開発者に人気がある主な理由

結論

この記事では、いくつかの例を使用して、Pythonでの例外処理の概念について簡単に説明しました。 組み込みの例外に加えて、 Pythonのカスタム例外も簡単に定義されています。 これで、Pythonでの例外の重要性と例外の処理を知ることができます

Python言語とそのデータサイエンスへの実装について詳しく知りたい場合は、upGradの次のコース「データサイエンスのエグゼクティブPGプログラム」をご覧ください。

オンラインコースは、21〜45歳の年齢層に属するすべてのエントリーレベルの専門家を対象としています。 20以上のライブセッションと、14以上のツールとプログラミング言語の実践的な知識を備えたこのコースでは、完璧に向けてガイドします。 どんな質問でもメッセージを送ることができます。 私たちのチームがお手伝いします。

Pythonには何種類のエラーがありますか?

Pythonには主に2つの識別可能なエラーのカテゴリがあります-構文エラーと例外。 構文エラー:構文エラーは、コードのいずれかの行に誤った構文がある場合に発生します。 これは最も一般的なエラーであり、プログラムの解析中に検出されます。 エラーには、演算子の欠落、不適切なインデント、キーワードのスペルミス、コロンの欠落、角かっこを残すこと、および構文内の他の微細なエラーが含まれます。 例外:例外は、プログラムの実行中に検出されたエラーです。 プログラムが構文テストに成功した後、論理エラーのチェックを行います。 Pythonには、組み込みの例外の豊富なコレクションがあります。 カスタムのユーザー定義の例外を作成することもできます。

構文エラーと例外の主な違いは何ですか?

コードまたはコード行が構文的に間違っていると、構文エラーが発生します。 コードで構文エラーが発生すると、プログラムは終了します。 コロンが欠落していたり​​、キーワードのスペルが間違っていたりすると、構文エラーが発生する可能性があります。
ただし、例外はまったく異なります。 例外は、プログラムの流れを妨げる異常と見なすことができます。 プログラムが構文的に正しい場合でも、例外が発生する可能性があります。 エラーとは異なり、コードは例外が発生した行まで実行されます。

Pythonでのraiseキーワードの役割は何ですか?

raiseキーワードは、Pythonで例外を発生させるために使用されます。 エラーの種類も一緒に発生させることができ、例外発生時に表示されるテキストを追加することもできます。 コードの入力をチェックする必要がある場合に非常に便利です。