692просмотров
40.9%от подписчиков
13 сентября 2025 г.
Score: 761
🖥 Ключевые слова checked и unchecked Имеется средство, связанное с генерированием исключений, возникающих при переполнении в арифметических вычислениях. Как известно, результаты некоторых видов арифметических вычислений могут превышать диапазон представления чисел для типа данных, используемого в вычислении. В этом случае происходит так называемое переполнение. Допускается указывать, будет ли в коде генерироваться исключение при переполнении, с помощью ключевых слов checked и unchecked. Так, если требуется указать, что выражение будет проверяться на переполнение, следует использовать ключевое слово checked, а если требуется проигнорировать переполнение — ключевое слово unchecked. В последнем случае результат усекается, чтобы не выйти за пределы диапазона представления чисел для целевого типа выражения. У ключевого слова checked имеются две общие формы. В одной форме проверяется конкретное выражение, поэтому она называется операторной. В другой форме проверяется блок операторов, поэтому она называется блочной. Ниже приведены обе формы: checked(выражение) checked { // Проверяемые операторы // ... } Если вычисление проверяемого выражения или блока приводит к переполнению, то генерируется исключение OverflowException. У ключевого слова unchecked также имеются две общие формы. Их синтаксис имеет ту же основу: unchecked(выражение) unchecked { // Операторы, для которых переполнение игнорируется // ... } Если же в непроверяемом выражении или блоке происходит переполнение, то результат его вычисления усекается. Используем unchecked в одном выражении: int maxInt = int.MaxValue; int uncheckedResult = unchecked(maxInt + 1); Console.WriteLine(uncheckedResult); Вывод с урезанным результатом: -2147483648 Используем checked для всего блока операторов: checked { try { int maxInt = int.MaxValue; int checkedResult = maxInt + 1; Console.WriteLine(checkedResult); } catch (OverflowException e) { Console.WriteLine($"Переполнение: {e.Message}"); } } Вывод: Переполнение: Arithmetic operation resulted in an overflow. Использовать checked уместно там, где переполнение может привести к критическим ошибкам в логике нашего приложения. #Полезно #Exception #TryCatch
692
просмотров
2263
символов
Нет
эмодзи
Нет
медиа

Другие посты @CSharpHive

Все посты канала →
🖥 Ключевые слова checked и unchecked Имеется средство, связ — @CSharpHive | PostSniper