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
{
}
  • Вопрос задан
  • 359 просмотров
Решения вопроса 2
alexey-m-ukolov
@alexey-m-ukolov Куратор тега PHP
В том, чтобы фреймворки и библиотеки эти интерфейсы реализовывали в виде своих исключений, но при этом не нужно было на эта конкретные реализации завязываться. Словом, смысл такой же, как и у любого другого интерфейса.
Ответ написан
@sidni
Php Developer
что бы правильно обрабатывать ошибки.
очень часто нужно писать различное поведение (обработку) для различных видов ошибок, есть ошибки системные, есть ошибки на уровне фреймеврка, библиотек, и Вашего приложения, иногда надо поставить try...catch и игнорировать исключение (просто залогировав), иногда на основе этого исключения нужно отобразить пользователю читаемое сообщение, иногда откатить транзакцию, или авайрийно завершить работу.
И чем больше разнообразие исключений тем больше возможностей правильно его обработать.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы