Creates a new FormatException with an optional error message.
Optionally also supply the actual source with the incorrect format, and the offset in the format where a problem was detected.