In Java...
int a;
int b;
{
try {
a += b; \\ a = a + b, might overflow
b = a - b; \\ b = (a + b) - b
a -= b; \\ a = (a + b) - (a)
} catch (OverflowException e) {
a -= b; \\ a = a - b, this might also overflow, but never if a + b overflows
b += a; \\ b = b+ (a - b)
a = b - a; \\ a = (a) - (a - b)
}
}