The requested page is not available for the requested platform. You are viewing the content for Default platform.

Throw Exceptions Contract

  • 2 min to read

Purpose

This Code Provider adds the guard precondition to method parameter(s) or a variable assignment. The precondition ensures the passed or assigned values are not empty and throws the ArgumentException (or ArgumentNullException) in case they are.

Availability

Available in the following cases.

  • When the caret is at the beginning of a method body. In this case, the contract will test all method parameters and strings.
  • When the caret is on a method's parameter name. In this case, the contract will test only the selected parameter.
  • When the caret is on a variable assignment.
Note

This Code Provider may be unavailable for variables of a non-nullable type, for instance, Integer.

Usage

  1. Place the caret at the beginning of a method body.

    Note

    The blinking cursor shows the caret's position at which the Code Provider is available.

    public bool AddRecord(string name, object data) {
    //...
        return true;
    }
    
  2. Use the Ctrl + . or Ctrl + ~ shortcut to invoke the Code Actions Menu.
  3. Select Add Contract | Throw Exceptions Contract from the menu.

After execution, the Code Provider adds the guard conditional against all the method parameters.

public bool AddRecord(string name, object data) {
    if (string.IsNullOrEmpty(name))
        throw new ArgumentException($"{nameof(name)} is null or empty.", nameof(name));
    if (data == null)
        throw new ArgumentNullException(nameof(data), $"{nameof(data)} is null.");

    //...
    return true;
}
See Also