Что не так с d2 в 28 строке? Пожалуй это самая непонятная задача за все время что я тут встречал. Зачем тут try/catch и что написано в этих методах? ничего не понятно( Из принципа не смотрю правильное решение.