Your task is to create a Number class that utilizes Python's magic methods (__add__, __sub__, __mul__, __truediv__) to perform mathematical operations. However, the class needs to be robust and be able to handle various exceptions that can occur during these operations.
If a division by zero is attempted, a ZeroDivisionError should be raised.
If either of the inputs cannot be converted to a number, a ValueError should be raised.
If the operator is not a string, a TypeError should be raised.
Additionally, you should implement a custom exception, UnsupportedOperatorError that inherits from ValueError. This error should be raised if an operation is attempted that is not supported by the class. That includes __floordiv__, __mod__, __pow__, __lshift__, __rshift__, __and__, __xor__, __or__.