FIX: every exercices of module 02

This commit is contained in:
2026-01-30 19:21:16 +01:00
parent acc6d274c2
commit 5b91191c20
6 changed files with 208 additions and 101 deletions

View File

@@ -1,33 +1,53 @@
from typing_extensions import override
class GardenError(Exception):
def __init__(self, message):
self.message = message
def __str__(self):
def __init__(self, message: str) -> None:
super().__init__()
self.message: str = message
@override
def __str__(self) -> str:
return f"Caught a garden error: {self.message}"
class PlantError(GardenError):
def __init__(self, message):
self.message = message
def __init__(self, message: str) -> None:
super().__init__(message)
def __str__(self):
@override
def __str__(self) -> str:
return f"Caught PlantError: {self.message}"
class WaterError(GardenError):
def __init__(self, message):
self.message = message
def __init__(self, message: str) -> None:
super().__init__(message)
def __str__(self):
@override
def __str__(self) -> str:
return f"Caught WaterError: {self.message}"
if __name__ == "__main__":
print("=== Custom Garden Errors Demo ===")
print("\n Testing PlantError...")
try:
raise PlantError("The tomato plant is wilting!")
except PlantError as err:
print(err)
print("\nTesting WaterError...")
try:
raise WaterError("Not enough water in the tank!")
except WaterError as err:
print(err)
print("\nTesting catching all garden errors...")
try:
raise GardenError("The tomato plant is wilting")
except GardenError as err:
print(err)
try:
raise GardenError("Not enough water in the tank")
except GardenError as err:
print(err)
print("\nAll custom error types work correctly !")