Поймать исключение OverFlow

 
0
 
.NET
ava
Relrin | 17.03.2013, 19:42
Суть задачи в следующем: надо отловить переполнение при суммировании элементов массива. Я не понимаю, почему не отлавливается исключение, точнее оно вообще не возникает.
Хотя для теста создал массив на 10000 элементов, со значениями i^2.


    public static class ArrayHelper
    {
        public unsafe static int Sum(int[] array)
        {
            int sum = 0;
            fixed (int* arrayPointer = array)
            {
                for (int i = 0; i < array.Length; i++)
                {
                    sum += *(arrayPointer + i);
                                        if (sum >= int.MaxValue || sum<=int.MinValue)
                      throw new OverflowException("Overflow");
                }
            }
            return sum;
        }
    }
Comments (2)
ava
DarkDragon | 17.03.2013, 22:24 #
Попробуйте увеличить разрядность переменной sum:

// int sum = 0;
long sum = 0;
ava
phomm | 18.03.2013, 17:40 #
http://msdn.microsoft.com/ru-ru/library/sy...wexception.aspx
раздел заметки, сверьтесь.

А по хорошему, самому кидать такое исключение требуется довольно редко, лучше просто его отследить.
Please register or login to write.
Firm of day
Вы также можете добавить свою фирму в каталог IT-фирм, и публиковать статьи, новости, вакансии и другую информацию от имени фирмы.
Подробнее
Contributors
advanced
Submit