Types of Exception & Cause of Error:

AssertionError :  Raised when assert statement fails.

AttributeError : Raised when attribute assignment or reference fails.

EOFError : Raised when the input() functions hits end-of-file condition.

FloatingPointError : Raised when a floating point operation fails.

GeneratorExit : Raise when a generator's close() method is called.

ImportError : Raised when the imported module is not found.

IndexError : Raised when index of a sequence is out of range.

KeyError : Raised when a key is not found in a dictionary. KeyboardInterrupt Raised when the user hits interrupt key (Ctrl+c or delete).

MemoryError : Raised when an operation runs out of memory.

NameError : Raised when a variable is not found in local or global scope.

NotImplementedError : Raised by abstract methods.

OSError : Raised when system operation causes system related error.

OverflowError : Raised when result of an arithmetic operation is too large to be represented. ReferenceError Raised when a weak reference proxy is used to access a garbage collected referent.

RuntimeError : Raised when an error does not fall under any other category.

StopIteration : Raised by next() function to indicate that there is no further item to be returned by iterator.

SyntaxError : Raised by parser when syntax error is encountered.

IndentationError : Raised when there is incorrect indentation.

TabError : Raised when indentation consists of inconsistent tabs and spaces.

SystemError :Raised when interpreter detects internal error.

SystemExit : Raised by sys.exit() function.

TypeError : Raised when a function or operation is applied to an object of incorrect type.

UnboundLocalError : Raised when a reference is made to a local variable in a function or method, but no value has been bound to that variable.

UnicodeError : Raised when a Unicode-related encoding or decoding error occurs.

UnicodeEncodeError : Raised when a Unicode-related error occurs during encoding.

UnicodeDecodeError : Raised when a Unicode-related error occurs during decoding.

UnicodeTranslateError : Raised when a Unicode-related error occurs during translating.

ValueError : Raised when a function gets argument of correct type but improper value.

ZeroDivisionError : Raised when second operand of division or modulo operation is zero.