Работу с исключениями в этом методе нужно полностью пересмотреть. Я показывал на семинаре, как сделать хорошо.