Package org.gradle.api.problems

## Interface ProblemReporter

-     @Incubating
      public interface ProblemReporter

  Defines different ways to report problems.
  Since:
    8.6

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `reporting​(Action<ProblemSpec> spec)` | Configures and reports a new problem.
    `java.lang.RuntimeException` | `rethrowing​(java.lang.RuntimeException e, Action<ProblemSpec> spec)` | Configures a new problem using an existing exception as input, reports it, and uses it to throw a new exception.
    `java.lang.RuntimeException` | `throwing​(Action<ProblemSpec> spec)` | Configures a new problem, reports it, and uses it to throw a new exception.

- - ### Method Detail

    - #### reporting

          void reporting​(Action<ProblemSpec> spec)

      Configures and reports a new problem.

      The spec must specify the problem label and the category. Any additional configuration is optional.

      Parameters:
        `spec` - the problem configuration
      Since:
        8.6

    - #### throwing

          java.lang.RuntimeException throwing​(Action<ProblemSpec> spec)

      Configures a new problem, reports it, and uses it to throw a new exception.

      An exception must be provided in the spec.

      The spec must specify the exception, the problem label, and the category. Any additional configuration is optional.

      Returns:
        never returns by throwing the exception, but using `throw` statement at the call site is encouraged to indicate the intent and benefit from local control flow.
      Since:
        8.6

    - #### rethrowing

          java.lang.RuntimeException rethrowing​(java.lang.RuntimeException e,
                                                Action<ProblemSpec> spec)

      Configures a new problem using an existing exception as input, reports it, and uses it to throw a new exception.

      The spec must specify the problem label and the category. Any additional configuration is optional.

      Returns:
        never returns by throwing the exception, but using `throw` statement at the call site is encouraged to indicate the intent and benefit from local control flow.
      Since:
        8.6