When to make a component vs. exception