Description
There are many wrong error type usages on ValueError type.
When an operation or function is applied to an object of inappropriate type, we should use TypeError rather than ValueError.
such as:
We should do some correction in some right time, note that if we do these corrections, it will break some catch on original ValueError.
[1] https://docs.python.org/3/library/exceptions.html#TypeError