Какое исключение?
Наверно все исключения.
В С++ для этого есть try catch
откуда в математической формуле исключения?
Окей. Допустим в формуле нужно считать sqrt и в зависимости от входных данных туда может прилететь отрицательное число. Нужно ли в таком случае исключение?
в математической формуле под корнем в принципе не может быть отрицательного числа
я подозреваю что вопрос не про формулу на бумаге а про реализацию этой формулы в виде кода
если есть функция, например, f(x) = sqrt(-x), она определена только на множестве неположительных вещественных чисел.
так при реализации рассматривать другие случаи просто нет смысла
То есть вы всегда рассматриваете только случаи, в которых вам приходят только правильные данные, считая что они не могут быть неправильными?
проверка значений лежит на пользователе
Я не знаю что вам на это сказать.... Нельзя доверять пользователю
я не про конечного пользователя
я про пользователя библиотеки, который должен в документации к ней прочитать, например, что числа больше нуля передавать нет смысла
Ему тоже. без обработки граничных значений вы будете вылетать с забавными исключениями
чаще всего эти условия проверяются системой типов
если значение посчитать невозможно, то выброс исключения - самый правильный вариант
Ну дак про это и речь, а ты говоришь откуда там они
так их не нужно обрабатывать в формуле
Не должно быть там исключений, так что надо все ловить через IF .
То есть пользователь некой сложномудреной функции должен написать её аналог для проверки "подойдут ли значения"?
Сначала лучше (по моему мнению ) проверять на правильность данных, если они неправильны , то функция- проверяльщик возвращает false. А в функцию корня пускать только если функция-проверяльщик вернула true. А что касается исключений, то имхо, они как раз и нужны, что если вдруг ты все предусмотрел , по идее все должно идти норм, и тут мы видим вероятность, что ВДРУГ что то пойдёт не так- тогда мы этот участок кода оборачиваем в try catch . То есть исключения следует использовать не как проверяльщик значений перед использованием в коде функции, а как средство для подстраховки и перехвата хода программы , если ВДРУГ всё-таки несмотря на все наши меры предосторожности, что то пошло не так (как вариант кончилась память резко во время вычисления внутри функции)
Что мешает проверить на overflow вместо всего вот этого?
аналог-то зачем? обычно проверки проще
Нет ты же просто проверяешь допустим условие что значение не отрицательно и всё
Хорошо. Допустим, у вас на входе значения с 20 каких-то датчиков
А какие там будут забавыне исключения кроме overflow?
Есть полезная статья почти про это
Обсуждают сегодня