def calculate_area(width, height) raise TypeError, "Width must be a number" unless width.is_a?(Numeric) raise TypeError, "Height must be a number" unless height.is_a?(Numeric) raise ArgumentError, "Width must be positive" unless width > 0 raise ArgumentError, "Height must be positive" unless height > 0 width * height end # Usage: calculate_area(10, 20) # works fine calculate_area(-5, 10) # raises ArgumentError