Python を除いて試す
Python のエラーには、構文エラーと例外の 2 つのタイプがあります。エラーとは、プログラムの実行が停止される原因となるプログラム内の問題です。一方、プログラムの通常のフローを変更するいくつかの内部イベントが発生すると、例外が発生します。
注記: 詳細については、「Python のエラーと例外」を参照してください。
一般的な例外エラーの一部は次のとおりです。
- IOError: ファイルを開けない場合 KeyboardInterrupt: ユーザーが不要なキーを押した場合 ValueError: 組み込み関数が間違った引数を受け取った場合 EOFError: データを読み取らずに End-Of-File に達した場合 ImportError: ifモジュールが見つかりません
Python で例外を試してみる
Try および Except ステートメントは、Python のコード内でこれらのエラーを処理するために使用されます。 try ブロックは、コードのエラーをチェックするために使用されます。つまり、プログラムにエラーがない場合、try ブロック内のコードが実行されます。一方、Except ブロック内のコードは、プログラムが先行する Try ブロックでエラーを検出するたびに実行されます。
構文:
try: # Some Code except: # Executed if error in the # try block
try() はどのように機能するのでしょうか?
- まず、 試す 句が実行されます。つまり、間のコードが実行されます。 試す。
- 例外がない場合は、 試す 条項が実行されます。 を除外する 条項は終了しました。
- 何らかの例外が発生した場合、 試す 条項はスキップされ、 を除外する 条項が実行されます。
- 何らかの例外が発生した場合でも、 を除外する コード内の句では処理されず、外側の句に渡されます。 試す 発言。例外が処理されないままになると、実行が停止します。
- あ 試す ステートメントには複数の文を含めることができます を除外する 句
コード 1: 例外はありませんので、 試す 条項が実行されます。
Python3
# Python code to illustrate> # working of try()> def> divide(x, y):> > try> :> > # Floor Division : Gives only Fractional Part as Answer> > result> => x> /> /> y> > print> (> 'Yeah ! Your answer is :'> , result)> > except> ZeroDivisionError:> > print> (> 'Sorry ! You are dividing by zero '> )> # Look at parameters and note the working of Program> divide(> 3> ,> 2> )> |
補助スペース: ○(1)
出力:
Yeah ! Your answer is : 1
コード 1: 例外もありますので、 を除外する 条項が実行されます。
Python3
# Python code to illustrate> # working of try()> def> divide(x, y):> > try> :> > # Floor Division : Gives only Fractional Part as Answer> > result> => x> /> /> y> > print> (> 'Yeah ! Your answer is :'> , result)> > except> ZeroDivisionError:> > print> (> 'Sorry ! You are dividing by zero '> )> # Look at parameters and note the working of Program> divide(> 3> ,> 0> )> |
出力:
Sorry ! You are dividing by zero
コード 2: 他の書き方 を除外する ステートメントを以下に示します。このようにして、キャッチする予定の例外のみを受け入れたり、どのエラーが発生しているかを確認したりできます。
Python3
# code> def> divide(x, y):> > try> :> > # Floor Division : Gives only Fractional Part as Answer> > result> => x> /> /> y> > print> (> 'Yeah ! Your answer is :'> , result)> > except> Exception as e:> > # By this way we can know about the type of error occurring> > print> (> 'The error is: '> ,e)> > divide(> 3> ,> 'GFG'> )> divide(> 3> ,> 0> )> |
出力:
The error is: unsupported operand type(s) for //: 'int' and 'str' The error is: integer division or modulo by zero
その他の条項
Python では、try-excel ブロックで else 句を使用することもできます。この句は、すべての例外句の後に存在する必要があります。 Try 句によって例外が発生しない場合にのみ、コードは else ブロックに入ります。
構文:
try: # Some Code except: # Executed if error in the # try block else: # execute if no exception
コード:
Python3
# Program to depict else clause with try-except> > # Function which returns a/b> def> AbyB(a , b):> > try> :> > c> => ((a> +> b)> /> /> (a> -> b))> > except> ZeroDivisionError:> > print> (> 'a/b result in 0'> )> > else> :> > print> (c)> > # Driver program to test above function> AbyB(> 2.0> ,> 3.0> )> AbyB(> 3.0> ,> 3.0> )> |
出力:
-5.0 a/b result in 0
最後にPythonのキーワード
Python では、finally キーワードが提供されており、このキーワードは常に try ブロックと else ブロックの後に実行されます。最後のブロックは常に、try ブロックが正常に終了した後、または何らかの例外により try ブロックが終了した後に実行されます。
構文:
try: # Some Code except: # Executed if error in the # try block else: # execute if no exception finally: # Some code .....(always executed)
コード:
Python3
# Python program to demonstrate finally> > # No exception Exception raised in try block> try> :> > k> => 5> /> /> 0> # raises divide by zero exception.> > print> (k)> > # handles zerodivision exception> except> ZeroDivisionError:> > print> (> 'Can't divide by zero'> )> > finally> :> > # this block is always executed> > # regardless of exception generation.> > print> (> 'This is always executed'> )> |
出力:
Can't divide by zero This is always executed
関連記事:
- アウトプットの質問
- Python での例外処理
- ユーザー定義の例外