Почему не возникает исключение OverflowException? - C#

Узнай цену своей работы

Формулировка задачи:

Есть такой код:
//max - 2147483647
int a = 2000000000;
int b = 2000000000;
int c = 0;
 
try
{
    c = a + b;
}
catch (OverflowException)
{
    System.Console.WriteLine("О, счастье! Программа работает нормально!");
}
 
System.Console.WriteLine("c = " + c);
Выдает с = -294967296 и спокойно идет дальше. Как так?

Решение задачи: «Почему не возникает исключение OverflowException?»

textual
Листинг программы
            //max - 2147483647
            int a = 2000000000;
            int b = 2000000000;
            int c = 0;
 
            try
            {
                checked { c = a + b; }
            }
            catch (OverflowException)
            {
                System.Console.WriteLine("О, счастье! Программа работает нормально!");
            }
 
            System.Console.WriteLine("c = " + c);

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 3.733 из 5
Похожие ответы