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

Pythonでユーザー定義の例外を実装するにはどうすればよいですか?


Pythonで新しい例外クラスを作成することにより、ユーザー定義またはカスタムの例外を作成します。アイデアは、例外クラスからカスタム例外クラスを派生させることです。ほとんどの組み込み例外は、同じ考え方を使用して例外を強制します。

指定されたコードで、ユーザー定義の例外クラス「CustomException」を作成しました。親としてExceptionクラスを使用しています。したがって、新しいユーザー定義の例外クラスは、他の例外クラスと同じように例外を発生させます。つまり、オプションのエラーメッセージを指定して「raise」ステートメントを呼び出します。

例を見てみましょう。

この例では、ユーザー定義の例外を発生させ、プログラムでエラーをキャッチする方法を示します。また、サンプルコードでは、保存されているアルファベットのみを入力するまで、ユーザーにアルファベットを何度も入力するように求めています。

ヘルプが必要な場合、プログラムはユーザーにヒントを提供し、ユーザーが正しいアルファベットを理解できるようにします。


#Python user-defined exceptions
class CustomException(Exception):
"""Base class for other exceptions"""
pass
class PrecedingLetterError(CustomException):
"""Raised when the entered alphabet is smaller than the actual one"""
pass
class SucceedingLetterError(CustomException):
"""Raised when the entered alphabet is larger than the actual one"""
pass
# we need to guess this alphabet till we get it right
alphabet = 'k'
while True:
try:
foo = raw_input ( "Enter an alphabet: " )
if foo < alphabet:
raise PrecedingLetterError
elif foo > alphabet:
raise SucceedingLetterError
break
except PrecedingLetterError:
print("The entered alphabet is preceding one, try again!")
print('')
except SucceedingLetterError:
print("The entered alphabet is succeeding one, try again!")
print('')
print("Congratulations! You guessed it correctly.")


  1. Pythonで例外を発生させる方法は?

    raiseキーワードを使用して、強制的に例外を発生させることができます。 「raise」メソッドを呼び出すための構文は次のとおりです。 raise [Exception [, args [, traceback]]] ここで、Exceptionは例外の名前です。オプションの「args」は、例外引数の値を表します。 また、オプションの引数であるtracebackは、例外に使用されるtracebackオブジェクトです。 #raise_error.py try: i = int ( input ( "Enter a positive integer value: " )

  2. Pythonでユーザー定義の例外を実装するにはどうすればよいですか?

    Pythonで新しい例外クラスを作成することにより、ユーザー定義またはカスタムの例外を作成します。アイデアは、例外クラスからカスタム例外クラスを派生させることです。ほとんどの組み込み例外は、同じ考え方を使用して例外を強制します。 指定されたコードで、ユーザー定義の例外クラス「CustomException」を作成しました。親としてExceptionクラスを使用しています。したがって、新しいユーザー定義の例外クラスは、他の例外クラスと同じように例外を発生させます。つまり、オプションのエラーメッセージを指定して「raise」ステートメントを呼び出します。 例を見てみましょう。 この例では、ユ