> For the complete documentation index, see [llms.txt](https://comaqa.gitbook.io/java-automation/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://comaqa.gitbook.io/java-automation/oop-v-java/isklyucheniya.md).

# Исключения

Исключениями или исключительными ситуациями (состояниями) называются ошибки, возникшие в программе во время её работы.

Все исключения в Java являются объектами. Поэтому они могут порождаться не только автоматически при возникновении исключительной ситуации, но и создаваться самим разработчиком. Исключения делятся на несколько классов, но все они имеют общего предка — класс Throwable. Его потомками являются подклассы Exception и Error.

Исключения (Exceptions) являются результатом проблем в программе, которые в принципе решаемы и предсказуемы. Например, произошло деление на ноль в целых числах.

Ошибки (Errors) представляют собой более серьёзные проблемы, которые, согласно спецификации Java, не следует пытаться обрабатывать в собственной программе, поскольку они связаны с проблемами уровня JVM.

Откомпилируем и запустим такую программу:

```
class Main {
    public static void main(String[] args) {
        int a = 4;
        System.out.println(a/0);
    }
}
```

В момент запуска на консоль будет выведено следующее сообщение:

```
Exception in thread "main" java.lang.ArithmeticException: / by zero
at Main.main(Main.java:4)
```

Из сообщения виден класс случившегося исключения — ArithmeticException. Это исключение можно обработать:

```
class Main {
    public static void main(String[] args) {
        int a = 4;
        try {
            System.out.println(a/0);
        } catch (ArithmeticException e) {
            System.out.println("Произошла недопустимая арифметическая операция");
        }
     }
}
```

Теперь, вместо стандартного сообщения об ошибке будет выполняться блок catch

Вопрос 1

```
Зачем разработчикам самим создавать исключительные ситуации?
```

Вопрос 2

```
System.out.println("Произошла недопустимая арифметическая операция"); - в чём 
преимущество такого сообщения?
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

```
GET https://comaqa.gitbook.io/java-automation/oop-v-java/isklyucheniya.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
