There is a prosibility to let the system throw an exception in this case:
checked(int.MinValue * -1)
will throw the exception
instead of:
unchecked(int.MinValue * -1)
will give the result of -2147483648 and no exception.
See also the link to learn.microsoft given in the answer of Rand-Random