i__dmitry
@i__dmitry
Weaving a web

В чём смысл ContainerExceptionInterface в PSR-11?

PSR-11 говорит:

Exceptions directly thrown by the container SHOULD implement the Psr\Container\ContainerExceptionInterface.

A call to the get method with a non-existing id MUST throw a Psr\Container\NotFoundExceptionInterface.


В чём смысл этих интерфейсов, если по факту они пустые?
<?php
namespace Psr\Container;

/**
 * Base interface representing a generic exception in a container.
 */
interface ContainerExceptionInterface
{
}


<?php
namespace Psr\Container;

/**
 * No entry was found in the container.
 */
interface NotFoundExceptionInterface extends ContainerExceptionInterface
{
}
  • Вопрос задан
  • 334 просмотра
Решения вопроса 2
alexey-m-ukolov
@alexey-m-ukolov Куратор тега PHP
В том, чтобы фреймворки и библиотеки эти интерфейсы реализовывали в виде своих исключений, но при этом не нужно было на эта конкретные реализации завязываться. Словом, смысл такой же, как и у любого другого интерфейса.
Ответ написан
@sidni
Php Developer
что бы правильно обрабатывать ошибки.
очень часто нужно писать различное поведение (обработку) для различных видов ошибок, есть ошибки системные, есть ошибки на уровне фреймеврка, библиотек, и Вашего приложения, иногда надо поставить try...catch и игнорировать исключение (просто залогировав), иногда на основе этого исключения нужно отобразить пользователю читаемое сообщение, иногда откатить транзакцию, или авайрийно завершить работу.
И чем больше разнообразие исключений тем больше возможностей правильно его обработать.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽