смысл этого кидалова - если тебе прилетели аргументы которых там быть не должно (а язык не строго типизированый) можно нажать на стоп кран и сказать "э, э, не, не, так нельзя". Например в поле ввода для длины, пользователь вводит отрицательное значение. Оно для арифметики допустимо, но для расчета нет. В такие и всякие других случаях можно кидать исключение, и в блоке обработки например, сообщить пользователю о неверном вводе, или откорректировать значение, или еще чего нибудь.
throw создает обьект, который передается в catch вот и все. в вашем примере обьект строкового типа, но может быть любого, также и сложносоставной обьект.