Основы языка C# 2005. Евсеева О.Н - 46 стр.

UptoLike

Составители: 

50
и в непроверяемом блоке при работе методов Convert все опасные
преобразования проверяются и приводят к выбрасыванию исключений.
Приведем пример, демонстрирующий все описанные ситуации:
/// <summary>
/// Демонстрация проверяемых и непроверяемых преобразований.
/// Опасные проверяемые преобразования приводят к исключениям.
/// Опасные непроверяемые преобразования приводят к неверным
/// результатам, что совсем плохо.
/// </summary>
public void CheckUncheckTest()
{
x = -25 ^ 2;
WhoIsWho("x", x);
b = 255;
WhoIsWho("b", b);
// Проверяемые опасные преобразования.
// Возникают исключения, перехватываемые catch-блоком.
checked
{
try
{
b += 1;
}
catch (Exception e)
{
Console.WriteLine("Переполнение при вычислении b");
Console.WriteLine(e);
}
try
{
b = (byte) x;
}
catch (Exception e)
{
Console.WriteLine("Переполнение при преобразовании к byte");
Console.WriteLine(e);
}
// непроверяемые опасные преобразования
unchecked
{
try
{
b += 1;