This documentation is archived and is not being maintained.


The throw statement is used to signal the occurrence of an anomalous situation (exception) during the program execution. It takes the following form:

throw [expression];


The exception object. This is omitted when rethrowing the current exception object in a catch clause.


The thrown exception is an object whose class is derived from System.Exception, for example:

class MyException : System.Exception {}
throw new MyException();

Usually the throw statement is used with try-catch or try-finally statements. When an exception is thrown, the program looks for the catch statement that handles this exception.

You can also rethrow a caught exception using the throw statement. For more information and examples, see try-catch, 8.10 The try statement and Throwing Exceptions.


This example demonstrates how to throw an exception using the throw statement.

// throw example
using System;
public class ThrowTest 
   public static void Main() 
      string s = null;

      if (s == null) 
         throw(new ArgumentNullException());

      Console.Write("The string s is null"); // not executed


The following exception occurs:



See the try-catch, try-finally, and try-catch-finally examples.

See Also

Compare to C++ | C# Keywords | Exception Handling Statements | Throwing Exceptions | C. Grammar