I'm not sure how you'd analyse the operands to determine if an overflow would occur, except by doing the operation and checking the flags. The carry flag would indicate an unsigned overflow, the overflow flag would indicate signed overflow. (the CPU doesn't know if you intend to treat integers as signed or unsigned - it's up to you to use appropriate instructions)
Strictly speaking, it isn't an error for an overflow to occur, since we're implicitly doing "modulo arithmetic", but it probably won't provide the result you expect. The question is, what do you propose to do about it? You can abort the calculation entirely, or "saturate" the result. The "best way" probably depends on what you intend to do... or intend to prevent...
Best,
Frank