Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2007.07.15;
Скачать: [xml.tar.bz2];

Вниз

разбираюсь с обработкой исключений, сразу возник вопрос   Найти похожие ветки 

 
DINOEL ©   (2007-06-21 15:32) [0]

Простой код:
var
 sum:real;

begin

 Try
 Sum:=100/0;
 Except
 Sum:=99.44;
 End;

  Edit2.Text:=FloattoStr(Sum);
end;

Так вот, в поле Edit2.Text попадает не 99.44 а некая строка "INF"
Что бы это значило ?

в то же время ,если делаю так

Sum:=99.44;
Edit2.Text:=FloattoStr(Sum);

То в поле Edit2.Text - попадает нормальное значение...


 
Reindeer Moss Eater ©   (2007-06-21 15:34) [1]

Это гримасы оптимизации


 
Reindeer Moss Eater ©   (2007-06-21 15:36) [2]

реально код Sum:=100/0; никогда не выполняется


 
Reindeer Moss Eater ©   (2007-06-21 15:38) [3]

А некая строка "INF" это сокращение от "infinitive"


 
DINOEL ©   (2007-06-21 15:57) [4]

Reindeer Moss Eater
Спасибо за инфо, но всё-таки ,не совсем понятно почему это дело так получается.


 
DINOEL ©   (2007-06-21 15:58) [5]

Хотя кажется дошёл :)


 
Reindeer Moss Eater ©   (2007-06-21 16:00) [6]

Потому что компилер еще на этапе нажатия F9 "записал" результат.


 
Anatoly Podgoretsky ©   (2007-06-21 16:05) [7]

Реально никакого исключения нет и по современному стандарту и быть не должно, деление на 0 это не ошибка а бесконечность, к сожалению у Борланда в этом деле непоследовательность. Процессор позволяет вырабатывать как INF так и флаг исключения.
Непоследовательность можешь проверить так

A := 0;
Sum := 100/A


 
Anatoly Podgoretsky ©   (2007-06-21 16:05) [8]

> Reindeer Moss Eater  (21.06.2007 16:00:06)  [6]

Заметь правильный в отличии от рантайм


 
Reindeer Moss Eater ©   (2007-06-21 16:08) [9]

Правильный-то он правильный, только что с ним с правильным делать если мы что-то вычисляем?


 
Anatoly Podgoretsky ©   (2007-06-21 16:23) [10]

> Reindeer Moss Eater  (21.06.2007 16:08:09)  [9]

По идее Борланду надо бы сделать параметр к среде для данной цели и согласовать райнтайм и дизайнтайм поведение.



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2007.07.15;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.04 c
2-1182425524
DINOEL
2007-06-21 15:32
2007.07.15
разбираюсь с обработкой исключений, сразу возник вопрос


2-1182383945
Cj
2007-06-21 03:59
2007.07.15
ReadProcessMemory, Float.


4-1170534926
Express
2007-02-03 23:35
2007.07.15
Как перехватить сообщение об открытие MDI-формы???


15-1181752900
Tonich
2007-06-13 20:41
2007.07.15
текс из hlp


3-1176406736
Slimer
2007-04-12 23:38
2007.07.15
Дерево групп в БД





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский