How do I manually throw/raise an exception in Python? Use the most specific Exception constructor that semantically fits your issue. Be specific in your message, e.g.: raise ValueError('A very specific bad thing happened.') Don't raise generic exceptions Avoid raising a generic Exception. To catch it, you'll have to catch all other more specific exceptions that subclass it. Problem 1: Hiding bugs