Another way to get caught is on a data type that allows really big numbers being forced into smaller data type in an unobtrusive way.
For instance, storing a field originally of type DOUBLE into something that is type LONG can often give you an overflow if the DOUBLE was pretty big, like > 2 billion. Not an overflow for the DOUBLE but a guaranteed overflow for the LONG.