Skip to main content

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.