Я пишу библиотеку PHP, и у меня есть проблема. В моих интерфейсах есть что-то похожее на следующее:
<?php
/**
* My interface
*
* ...
*/
interface MyInterface
{
/**
* This method does foo.
*
* @throws \RuntimeException If foo can't be done.
*/
public function fooAndBar();
}
?>
Теперь запись @throws
не совсем правильная, поскольку интерфейс фактически ничего не делает и используется исключительно для абстрактных деталей реализации. Тем не менее, я всегда использовал его, потому что все мои реализации интерфейса вызвали исключение, когда что-то пошло не так.
Но другой разработчик может написать реализацию, которая не может потерпеть неудачу (поэтому она не может генерировать исключение), или он может захотеть использовать другой класс исключений.
В этой ситуации, как я должен документировать @throws
в объявлениях интерфейса? Должен ли он быть документирован?