Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
960 of 1492 menu
◀ ▶

OverflowException

В блоке checked переполнение int вызывает OverflowException. В unchecked значение «переносится» без исключения. Convert.ToByte(256) тоже бросает OverflowException. Исключение наследует ArithmeticException.

Синтаксис

try { checked { int res = int.MaxValue + 1; } } catch (OverflowException) { }

Пример

Давайте поймаем переполнение в checked:

using System; class Program { static void Main() { try { checked { int res = int.MaxValue + 1; } } catch (OverflowException) { Console.WriteLine("fail"); } } }

Результат выполнения кода:

"fail"

Пример

Давайте в unchecked исключения не будет:

using System; class Program { static void Main() { int res = unchecked(int.MaxValue + 1); Console.WriteLine(res == int.MinValue); } }

Результат выполнения кода:

True

Пример

Давайте поймаем Convert.ToByte(256):

using System; class Program { static void Main() { try { Convert.ToByte(256); } catch (OverflowException) { Console.WriteLine("fail"); } } }

Результат выполнения кода:

"fail"

Смотрите также

  • checked,
    который включает проверку переполнения
  • ArithmeticException,
    базовый тип для OverflowException
  • DivideByZeroException,
    другой наследник ArithmeticException
  • FormatException,
    которое связано с разбором, а не переполнением
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить