An exception is an error condition or unexpected behavior encountered during program execution. Exceptions are handled using try, catch, and finally blocks. The try block contains code that might throw an exception, the catch block handles the exception if it occurs, and the finally block contains cleanup code that always executes. Common .NET exception classes include ArgumentException, NullReferenceException, and IndexOutOfRangeException. Exceptions provide a standard way to handle runtime errors in programs and allow the programmer to define specific behavior in error cases.