Pythonにおける例外の発生:エラーのトリガーと管理
メニューを表示するにはスワイプしてください
Pythonにおける例外は、エラー状態が発生し、関数やメソッドが本来の処理を実行できなくなったことを示すために送出されるべきものです。単にNoneや類似の値を返すだけでは曖昧になり、エラーが発生したことを十分に伝えられない場合に特に有用です。
標準例外の送出
Pythonで例外を送出するには、raise文を使用します。以下は簡単な例です:
123456789def calculate_age(birth_year): import datetime current_year = datetime.datetime.now().year age = current_year - birth_year if age < 0: raise ValueError("The birth year cannot be in the future") return age calculate_age(2034)
この例では、birth_yearが現在の年よりも大きい場合、ValueErrorが送出され、指定された生年が無効であることを示します。
カスタム例外の作成
Pythonの組み込み例外は多くの状況をカバーしていますが、特定のドメインに固有のエラー状態を明確に表現するために独自の例外を定義する必要がある場合もあります。
カスタム例外の定義
カスタム例外は通常、組み込みのExceptionクラスまたはそのサブクラスから派生させて定義します。以下はカスタム例外の定義方法です:
1234567891011class RegistrationError(Exception): """Base class for all registration-related exceptions.""" pass class UsernameTooShort(RegistrationError): """Raised when the username is too short.""" pass class PasswordTooWeak(RegistrationError): """Raised when the password is too weak.""" pass
Note
OOPの継承の概念を覚えていることを願います 😉
カスタム例外の使い方の実践例。例の中の else や as キーワードについては心配しなくて大丈夫です。次の章で説明します。
123456789101112131415161718192021222324252627282930# Custom exceptions class RegistrationError(Exception): pass class UsernameTooShort(RegistrationError): pass class PasswordTooWeak(RegistrationError): pass # Functions to validate registration def validate_username(username): if len(username) < 6: raise UsernameTooShort("Username must be at least 6 characters long") def validate_password(password): if len(password) < 8: raise PasswordTooWeak("Password must be at least 8 characters long") def register_user(username, password): try: validate_username(username) validate_password(password) except RegistrationError as error: print(f"Registration failed: {error}") else: print("User registered successfully!") # Test the registration function register_user("john", "123") # This should fail
すべて明確でしたか?
フィードバックありがとうございます!
セクション 2. 章 2
AIに質問する
AIに質問する
何でも質問するか、提案された質問の1つを試してチャットを始めてください
セクション 2. 章 2