堅牢で保守可能なアプリケーションを作成するには、効果的な例外処理コードを作成することが不可欠です。
以下は、Python で例外処理コードを記述するためのベスト プラクティスです。
具体的に指定してください:
try: # Code that might raise an exception except ValueError as e: print(f"Value error occurred: {e}")
特定の例外をキャッチします:
try: # Code that might raise an exception except Exception as e: # Catch all exceptions if necessary print(f"An error occurred: {e}")
try: # Code that might raise an exception except ValueError as e: print(f"Value error: {e}") else: print("No exceptions occurred.") finally: print("This will always be executed.")
import logging logging.basicConfig(level=logging.ERROR) try: # Code that might raise an exception except Exception as e: logging.error(f"An error occurred: {e}")
try: # Code that might raise an exception except ValueError as e: logging.error(f"Value error: {e}") raise # Re-raise the exception
with open('file.txt', 'r') as file: content = file.read()
- アプリケーションのクラッシュを許可する代わりに、フォールバック メカニズムやユーザー フレンドリーなエラー メッセージを提供します。
try: with open('config.json', 'r') as file: config = json.load(file) except FileNotFoundError: print("Config file not found, using defaults.") config = {"default": "value"}
try: # Code that might raise an exception except Exception as e: pass # Bad practice - you're ignoring the error
def divide(a, b): """ Divides two numbers. :param a: Numerator. :param b: Denominator. :return: The result of the division. :raises ZeroDivisionError: If the denominator is zero. """ if b == 0: raise ZeroDivisionError("Cannot divide by zero.") return a / b
class InvalidInputError(Exception): """Exception raised for invalid inputs.""" pass def process_input(value): if not isinstance(value, int): raise InvalidInputError("Input must be an integer.") return value * 2
def test_divide(): assert divide(10, 2) == 5 with pytest.raises(ZeroDivisionError): divide(10, 0)
例外的なケースには例外を使用します:
# Bad practice: using exceptions for control flow try: while True: value = next(iterator) except StopIteration: pass # End of iteration
try: result = process_input(input_value) except InvalidInputError as e: raise ValueError("Failed to process input") from e
これらのベスト プラクティスに従うことで、エラーを適切に管理し、アプリケーションの信頼性を高める、より堅牢で保守しやすく、読みやすい例外処理コードを作成できます。
以上がPython で例外処理を実装するためのベスト プラクティスの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。