Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonで例外を発生させる


raiseステートメントを使用すると、いくつかの方法で例外を発生させることができます。 raiseステートメントの一般的な構文は次のとおりです。

構文

raise [Exception [, args [, traceback]]]

ここで、Exceptionは例外のタイプ(たとえば、NameError)であり、argumentは例外引数の値です。引数はオプションです。指定しない場合、例外引数はNoneです。

最後の引数であるtracebackもオプションであり(実際にはほとんど使用されません)、存在する場合は、例外に使用されるtracebackオブジェクトです。

例外は、文字列、クラス、またはオブジェクトです。 Pythonコアが発生させる例外のほとんどはクラスであり、引数はクラスのインスタンスです。新しい例外の定義は非常に簡単で、次のように実行できます-

def functionName( level ):
   if level < 1:
      raise "Invalid level!", level
      # The code below to this would not be executed
      # if we raise the exception

−例外をキャッチするには、「except」句が、クラスオブジェクトまたは単純な文字列のいずれかでスローされた同じ例外を参照する必要があります。たとえば、上記の例外をキャプチャするには、次のようにexcept句を記述する必要があります-

try:
   Business Logic here...
except "Invalid level!":
   Exception handling here...
else:
   Rest of the code here...

  1. リスト内包表記でPython例外をキャッチする方法は?

    Pythonには例外を処理または無視できる組み込み関数がないため、リスト内包には1つ以上の式が含まれているため、リスト内包のすべての例外を処理することはできません。ステートメントのみが例外をキャッチ/無視/処理できます。 例外が発生しやすい部分式の評価を関数に委任することは、実行可能な回避策の1つです。その他は、例外を発生させる可能性のある値のチェックです。 この問題を処理する方法は、次のコードを使用することです。 例 foo = (5,7,1,0,9) def bar(self): try: return [1/i for i in foo] except ZeroDivisionErro

  2. Rubyの例外

    例外 例外的なに関する情報を保持する特別なデータ構造です。 アプリケーションで発生している状態。例外は、特定の状況に対処する方法がわからないためにプログラムを実行し続けることができない場合に送信されるシグナルです。 Rubyでは、このようなシグナルの送信を発生と呼びます。 例外。 raise 'this is an exception' puts "This message won't be printed." 動作中の例外を確認する最も簡単な方法は、自分で例外を発生させることです。 raiseを使用する メッセージ付きのメソッドの場合、