Во-первых, в Java есть 2 типа исключений. Проверено и не проверено. Проверяются исключения, которые вы должны обработать, либо перехватывая их (окружая блок, часть кода, содержащие методы, которые будут вызывать исключение, подобное вашему), либо объявляя, что родительский метод, вызывающий этот метод, вызывает исключение.
Throwable - это базовый класс всех ошибок в Java. Существует несколько типов ошибок, подтип - Исключения.
Важно не то, что вы, похоже, создаете исключение в случае успеха, которое не лучше всего делать, потому что исключения дорогостоящие с точки зрения ресурсов. В этом случае лучше использовать события для трансляции того, что произошло дополнение.