Question: Clarification about the Warnings/Exceptions/Errors types.
After going through the docstrings in the file ```pandas/errors/__init__.py``` I came to a conclusion(Please, correct me if I'm wrong about anything) that there's 3 "Classes"(I have no better word for it).

There's is:

Warning - When the user is attempting to do something "bad" but possible (Having 2 different data types in one column for example).

Exception - ???

Error - The user is attempting to do something impossible.

I'd really like to know what's the main difference between an Exception and an Error, And where and when you'd raise them?

Edit: Not sure if this is the correct place to ask this, LMK where is the right place to address questions.