Package org.jetbrains.annotations

# Annotation Interface NotNull

@Documented @Retention(CLASS) @Target({METHOD,FIELD,PARAMETER,LOCAL_VARIABLE,TYPE_USE}) public @interface NotNull
An element annotated with NotNull claims `null` value is forbidden to return (for methods), pass to (parameters) and hold (local variables and fields). Apart from documentation purposes this annotation is intended to be used by static analysis tools to validate against probable runtime errors and element contract violations.

## Optional Element Summary

Optional Elements
Modifier and Type
Optional Element
Description
`Class<? extends Exception>`
`exception`
`String`
`value`

## Element Details

### value

String value

Returns:
  Custom exception message

Default:
  `""`

### exception

Class<? extends Exception> exception

Returns:
  Custom exception type that should be thrown when not-nullity contract is violated. The exception class should have a constructor with one String argument (message). By default, `IllegalArgumentException` is thrown on null method arguments and `IllegalStateException` — on null return value.

Default:
  `java.lang.Exception.class`