Код в вашем вопросе выглядит прямо на первый взгляд.
Если этот вызов удаления действительно выдает это исключение при выполнении, тогда ваш код его перехватит.Если этого не произойдет, то исключение фактически будет выброшено в другом месте ... или исключение, которое выдается, будет другим.
Я бы временно заменил бы уловс уловом java.lang.Throwable
, чтобы увидеть, распространяется ли какое-то другое исключение в этой точке.И добавьте отпечаток трассировки, чтобы увидеть, выполняется ли код вообще.
Если у вас уже есть трассировка стека, она сообщит вам, где генерируется исключение, если не происходит что-то действительно сложное.Вам просто нужно поймать его дальше вверх по стеку.