Дело в том, что я хочу вывести график некой функции (допустим, введённой пользователем). В некоторых точках функция может оказаться не определена. Чтобы программа это дело обработала, можно ввести проверки (if(abs(a)<1E+1000) and (abs(b)<1E+1000) then c := a*b), но хотелось бы, чтобы программа вычисляла всё, что можно вычислить. Поэтому я таки ввёл исключения, и с ними и жил. Но меня не покидало ощущение, что я делаю что-то не то. Особенно, если надо вычислить значение во многих точках, что требует времени. Кстати, как выкручивались в ТурбоПасе, в котором try except не было?
Добавлено через 4 мин. > Костыль будет, если отключить обработку исключения.
То есть просто записать NAN в память - это костыль, а перейти в блок обработки исключения, там сделать ещё кучу действий по определению типа исключения и потом всё равно записать в память этот NAN - это не костыль? Мне вот с чисто эстетической точки зрения это дико не нравится.
> В твоей программе тебе нужно определенное поведение - значит, лови исключение в своей программе, а не заставляй все остальные программы играть по твоим правилам.
То есть даже если я запомню состояние FPU и потом при выходе его восстановлю, то параллельно работающим программам это сильно не понравится? Кстати, Delphi же вызовы некоторых системных функций оборачивает с переводом FPU в режим повышенной точности. И ничего.
--------------------
|