例外は、プログラムの実行中に発生する予期しないイベントです。実行時エラーとも呼ばれます。このエラーが発生すると、Python は実行中に例外を生成しますが、これは処理できるため、プログラムが中断されるのを防ぎます。この記事では、「Python で例外を出力するにはどうすればよいですか?」に焦点を当てます。
Pythonの例外とは何ですか?
で パイソン , 例外とは、プログラムにおけるエラーの一種です。プログラムが構文的に正しいにもかかわらず、実行中にエラーが発生した場合、エラーは「例外」と呼ばれます。
例 : この例では、数値をゼロで除算しようとしているため、実行時エラーが発生します。
Python3
num1>=> 5> num2>=> 0> print>(num1>/> num2)> |
>
>
出力
Traceback (most recent call last): File 'Solution.py', line 5, in print(num1 / num2) ZeroDivisionError : division by zero>
このプログラムは構文的に正しいです 。ここでの唯一の問題は、操作に使用される数値によるものです。数値を 0 で割ることはできないため、エラーがスローされます。したがって、これは「例外」の例です。
例外とはどのようなものですか?
上記のプログラムを実行すると、例外が発生しました。スローされたエラーには、エラーが発生した行、正確な行、およびエラー タイプが表示されます。
表示されたエラーの種類は「例外」と呼ばれます。例外を通して、私たちは発生した問題を知ることになります。上記のプログラムの例外は次のとおりです。 ZeroDivisionError: ゼロ除算 。
リアーナの年齢
例 : ここで、変数 var1 の割り当ては、 未定義の変数 、var2。
Python3
Cプログラムの文字列配列
var1>=> var2> |
>
>
出力
Traceback (most recent call last): File 'Solution.py', line 2, in var1 = var2 NameError: name 'var2' is not defined>
上記では、例外が次のように表示されます。 NameError: 名前「var2」が定義されていません 。
Python での例外処理
例外は時々非常に面倒になることがあります。ここで、例外処理の概念が登場します。例外処理を使用すると、単にユーザーにエラーをスローするのではなく、ユーザーの例外を簡単に処理できます。
例 : このプログラムでは、入力は「int」型で取得されます。ただし、そこに文字を入力すると、「ValueError」がスローされます。これにより、ユーザーは多くの場合混乱する可能性があります。ここで例外処理を行います。値エラーをスローしてユーザーを混乱させる代わりに、ユーザーに再試行を提案するステートメントを表示し、ユーザーに数値を再度入力する機会を与えます。
Python3
num1>=> int>(>input>(>'Enter num1: '>))> num2>=> int>(>input>(>'Enter num2: '>))> answer>=> f>'{num1} / {num2} = {num1 / num2}'> print>(answer)> |
>
>
出力
avl ツリー
Enter num1: 1 Enter num2: b Traceback (most recent call last): File 'D:/PycharmProjects/pythonProject2/main.py', line 15, in num2 = int(input('Enter num2: ')) ValueError: invalid literal for int() with base 10: 'b'> try、excel、else の使用
このコードでは、入力が正しい方法で与えられるまでユーザーに試行させたいため、while ループが実行されます。「try」句を使用しています。 try 句は、その句内の行のエラーをチェックします。
例外が発生した場合は、「例外」句にジャンプし、提供されたエラー メッセージを出力します。 2 つの例外句を作成しました。1 つは ValueError で、もう 1 つは ZeroDivisionError です。これらの各節はそれぞれの例外を処理し、それぞれのメッセージを出力します。
そして最後にelse句を書きました。エラーが発生しない場合は、else ブロックが実行されます。 else ブロックでは、除算の商を出力し、ループから抜け出します。
Python3
while> True>:> >try>:> >num1>=> int>(>input>(>'Enter num1: '>))> >num2>=> int>(>input>(>'Enter num2: '>))> >answer>=> f>'{num1} / {num2} = {num1 / num2}'> >except> ValueError as e:> >print>(>'Try putting an integer value.
Error Occured:'>, e)> >except> ZeroDivisionError as ex:> >print>(>'Division by zero is invalid!
Error Occured:'>, ex)> >else>:> >print>(answer)> >break> |
グレートアンドラ
>
>
出力:

印刷の例外
例外が正確に何であるか、その外観と処理方法を確認したので、次は例外を印刷する方法を見ていきます。
例外を出力するには、次を使用します。 'として' Pythonのキーワード。
以前に使用したのと同じ例を使用しました。 「as」キーワードを使用し、「ValueError」の変数「ve」と「ZeroDivisionError」の変数「zde」を宣言しました。次に、例外が発生した場合に、その例外を出力するコードを作成しました。しかし、それでも、取得した例外のタイプを確認することはできません。
Python3
while> True>:> >try>:> >num1>=> int>(>input>(>'Enter num1: '>))> >num2>=> int>(>input>(>'Enter num2: '>))> >answer>=> f>'{num1} / {num2} = {num1 / num2}'> >except> ValueError as ve:> >print>(ve)> >except> ZeroDivisionError as zde:> >print>(zde)> >else>:> >print>(answer)> >break> |
>
>
出力:
Enter num1: a invalid literal for int() with base 10: 'a' Enter num1: 0 Enter num2: 0 division by zero Enter num1: 16 Enter num2: 4 16 / 4 = 4.0>
印刷例外の種類
例外のタイプを確認するには、type() 関数を使用できます。
データ構造
ここでは、コードの実行中に発生した例外のタイプを知るために type() 関数を使用しました。
Python3
while> True>:> >try>:> >num1>=> int>(>input>(>'Enter num1: '>))> >num2>=> int>(>input>(>'Enter num2: '>))> >answer>=> f>'{num1} / {num2} = {num1 / num2}'> >except> ValueError as ve:> >print>(>type>(ve), ve)> >except> ZeroDivisionError as zde:> >print>(>type>(zde), zde)> >else>:> >print>(answer)> >break> |
>
>
出力
Enter num1: a invalid literal for int() with base 10: 'a' Enter num1: 1 Enter num2: 0 division by zero Enter num1: 4 Enter num2: 2 4 / 2 = 2.0>