Исключение выбрасывается при отрицательном, но не принимает. По условию, конечно, немного не так и моё решение похоже на костыль, но истина, чувтствую, где-то рядом.