我有一个包含两个值的整数数组,每个值都是 int32 的最大值:
int[] factors = new int[] { 2147483647, 2147483647 };
我试图让这两个数字的乘积来创建一个溢出异常:
try
{
int product = factors[0] * factors [1];
}
catch(Exception ex)
{
}
令我惊讶(和沮丧)的是,product 实际上返回值 1。为什么会这样,当两个整数的乘积超过 int.MaxValue 时,我将如何抛出异常?