# ❤ Benefits

<details>

<summary>Problem and its solution</summary>

<mark style="color:green;">**✓**</mark> The error message is **divided** into the **problem** and its **solution**.

<mark style="color:green;">**✓**</mark> An error has the **problem**.

<mark style="color:green;">**✓**</mark> An error has a **solution** to the described problem.

<mark style="color:green;">**✓**</mark> There is no error without a **potential solution**.

</details>

<details>

<summary>Unique identification</summary>

<mark style="color:green;">**✓**</mark> An error can have **unique identification** of generic type variable.

<mark style="color:green;">**✓**</mark>**&#x20;Unique identification** numbers enforce the **systematization** of application errors.

<mark style="color:green;">**✓**</mark> Enforcement of systematization produces **thoughtful application**.

</details>

<details>

<summary>Template</summary>

<mark style="color:green;">**✓**</mark> Template with **replaceable variable** tags `{problem}` `{fix}` `{id}` `{min}` `{max}` `{type}` `{link}`.

<mark style="color:green;">**✓**</mark> Each error can be thrown with a **different** template.

</details>

<details>

<summary>Range error</summary>

<mark style="color:green;">**✓**</mark> An error contains additional parameters to indicate the minimum and maximum range that causes an error to be or not to be thrown.

</details>

<details>

<summary>Type error</summary>

<mark style="color:green;">**✓**</mark> An error contains an additional parameter to indicate the type that causes an error to be or not to be thrown.

</details>

<details>

<summary>Custom error</summary>

<mark style="color:green;">**✓**</mark> Create custom errors that feature: message divided into problem and fix, unique identification, and the template by extending the abstract object.

</details>

<details>

<summary>Storage to manage errors</summary>

<mark style="color:green;">**✓**</mark> The objects to **manage** errors of the same type of multiple unique identification numbers.

<mark style="color:green;">**✓**</mark>**&#x20;Set** the error at a selected number from the group of unique identification numbers.

<mark style="color:green;">**✓**</mark>**&#x20;Throw** an error with a selected number from the group of unique identification numbers.

<mark style="color:green;">**✓**</mark>**&#x20;Get** a single error of a selected number from the group of unique identification numbers.

<mark style="color:green;">**✓**</mark>**&#x20;Get** all set errors.

</details>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://error.angular-package.dev/draft-5/benefits.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
