Почему не возникает исключение 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);

ИИ для рефератов и докладов


  • Экспорт Word по ГОСТу
  • Минимум 80% уникальности текста
  • Поиск релевантных источников в интернете
  • Готовый документ за 2 минуты

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

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