C# Checked and Unchecked

C# provides checked and unchecked keyword to handle integral type exceptions. Checked and unchecked keywords specify checked context and unchecked context respectively. In checked context, arithmetic overflow raises an exception whereas, in an unchecked context, arithmetic overflow is ignored and result is truncated.

C# Checked

The checked keyword is used to explicitly check overflow and conversion of integral type values at compile time.

Example #1

Let's first see an example that does not use checked keyword.

Without using checked

snippet
using System;
namespace CSharpProgram
{
    class Program
    {
        static void Main(string[] args) 
        {
                int val = int.MaxValue;
                Console.WriteLine(val + 2);
        }
    }
}
Output
-2147483647

See, the above program produces the wrong result and does not throw any overflow exception.

Example #2

C# Checked Example using checked

This program throws an exception and stops program execution.

snippet
using System;
namespace CSharpProgram
{
    class Program
    {
        static void Main(string[] args) 
        {
            checked
            {
                int val = int.MaxValue;
                Console.WriteLine(val + 2);
            }
        }
    }
}
Output
Unhandled Exception: System.OverflowException: Arithmetic operation resulted in an overflow.

C# Unchecked

The Unchecked keyword ignores the integral type arithmetic exceptions. It does not check explicitly and produce result that may be truncated or wrong.

Example
snippet
using System;
namespace CSharpProgram
{
    class Program
    {
        static void Main(string[] args) 
        {
            unchecked
            {
                int val = int.MaxValue;
                Console.WriteLine(val + 2);
            }
        }
    }
}
Output
-2147483647
Related Tutorial
Follow Us
https://www.facebook.com/Rookie-Nerd-638990322793530 https://twitter.com/RookieNerdTutor https://plus.google.com/b/117136517396468545840 #
Contents +