Spójrz na javadoc dla Collection # add
Wspomniano o całej masie niezaznaczonych wyjątków:
Throws:
UnsupportedOperationException - add is not supported by this collection.
ClassCastException - class of the specified element prevents it from being added to this collection.
NullPointerException - if the specified element is null and this collection does not support null elements.
IllegalArgumentException - some aspect of this element prevents it from being added to this collection.
Jeśli masz cierpliwość, polecam dokładnie udokumentować w ten sposób możliwe wyjątki generowane przez twoje metody. W pewnym sensie jest to jeszcze ważniejsze, aby zrobić to dla niezaznaczonych wyjątków, ponieważ sprawdzone wyjątki są w pewnym stopniu samodokumentujące (kompilator wymusza na kodzie wywołującym ich potwierdzenie).