Если вы создаете API, который будут использовать другие, и вы хотите сообщить, что произошла ошибка, ну ... выбросите исключение. Если это исключение не будет обнаружено программистом, использующим ваш API, это их вина, а не ваша; с другой стороны, если их код становится все шатким, потому что ваша функция делает что-то действительно странное с ошибкой, хорошо ... хорошо, это все еще ошибка другого программиста в том, что он не проверяет должным образом входные данные в вашем API, но должен быть хорошим гражданином и помочь их отладке, выбрасывая это исключение. Они могут не любить вас за то, что вы помещаете исключения повсюду, но они будут ненавидеть вас, если ваш код просто тихо делает действительно странные вещи, вместо того, чтобы дать хорошее представление о том, что это за ошибка.
Я бы сказал, что также регистрировать ошибку, но вы делаете это в JavaScript, где нет такой возможности.
И, к сведению, это исходит от программиста, который использовал API, которые и создают, и не генерируют исключения при ошибках; те, которые бросают их, как правило, те, которые я считаю лучше написанными.