What are exceptions and how to handle them?