26. Defensive Programming
Defensive programming is about writing code that anticipates and guards against errors.
Examples of Defensive Programming
Validate Inputs
def divide(a, b):
if b == 0:
raise ValueError("Denominator cannot be zero")
return a / b
Use Defaults Carefully
def add_item(item, container=None):
if container is None:
container = []
container.append(item)
return container
Fail Fast
Raise errors early instead of allowing incorrect state to spread.
Practice Challenge
Write a function safe_average(numbers) that checks the list is not empty before computing the average.
Wrap-Up
Defensive programming improves reliability by preventing invalid states and handling errors early.