Поймать исключение 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;
        }
    }
Kommentare (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
раздел заметки, сверьтесь.

А по хорошему, самому кидать такое исключение требуется довольно редко, лучше просто его отследить.
Registrieren Sie sich oder melden Sie sich an, um schreiben zu können.
Unternehmen des Tages
Вы также можете добавить свою фирму в каталог IT-фирм, и публиковать статьи, новости, вакансии и другую информацию от имени фирмы.
Подробнее
Mitwirkende
advanced
Absenden