Возникли проблемы при добавлении выражения throws в заголовок метода toString. - PullRequest
1 голос
/ 13 марта 2020

может кто-нибудь помочь? Я студент CS, работаю над проектом в java для класса. Нам нужно создать проверенное исключение, которое выдается в классе LinkedQueue. Все в порядке. В моем классе над LinkedQueue мы должны признать исключение и не обрабатывать его. Поэтому для каждого метода в классе, который вызывает метод LinkedQueue, я добавил «throws EmptyQueueException». Это работает за исключением метода toString. Когда я добавляю предложение throws, я получаю сообщение об ошибке

"overrider java .lang.Object.toString"

и

Исключение EmptyQueueException не совместимо с предложением throws в Object.toString.

Любые идеи / помощь?

Большое спасибо

1 Ответ

3 голосов
/ 13 марта 2020

Вы не можете. Контракт метода Object#toString() гарантирует, что он не будет выдавать никаких проверенных исключений, и поскольку все, что является Object (всем), должно соответствовать этому контракту, вы не можете добавить проверенное исключение. toString() должен никогда в любом случае вызывать исключение любого рода, поскольку он используется в тысячах мест во всех приложениях и должен быть "безопасным" для вызова.

...