Non c'è nulla di strano o assurdo ... basta conoscere le regole.
Un metodo può dichiarare una eccezione checked ma non lanciarla. Semplicemente perché lui non la lancia ma ... un override in una sottoclasse potrebbe invece.
Gli Error, lo ripeto, sono "unchecked". Non c'è alcun obbligo di dichiararli con il throws né di catturarli/gestirli in qualche modo. Quindi mettere throws Error per il compilatore non implica nulla. Al massimo è utile a livello documentativo, cioè nel javadoc che si può generare, verrebbe fuori ben evidente che il metodo dichiara Error. Insomma, serve più all'umano che al compilatore un throws del genere.
Gli Error comunque, tipicamente, non si dichiarano (mai fatto personalmente).
Sono le eccezioni "checked" che vanno dichiarate. Queste vanno considerate dal compilatore e dal programmatore.


Rispondi quotando
