Cтраница 2
![]() |
Пример сообщения о возникновении исключения ( программа запущена из Delphi. [16] |
При разработке программы программист должен постараться предусмотреть все возможные варианты некорректных действий пользователя, которые могут привести к возникновению ошибок времени выполнения ( исключения), и обеспечить способы защиты от них. [17]
Для временных файлов при отсоединении от устройства по умолчанию устанавливается статус DELETE Значение статуса KEEP для временных файлов приводит к ошибке времени выполнения. [18]
Opera может использоваться с компонентами Arcana и официально будет поддерживаться IntraWeb 5.1. Не забывайте, что браузер может искажать свою идентификационную информацию, например, Opera зачастую представляется как Internet Explorer, предотвращая корректное опознавание, которое используется для ограничения использования веб-сайтов другими браузерами, но это может привести к ошибкам времени выполнения или несовместимости. [19]
Ситуации, не разрешенные правилами языка, могут возникнуть и при выполнении программы, например деление на нуль или извлечение корня квадратного из отрицательного числа. Такие ошибки называются ошибками времени выполнения. [20]
![]() |
Диалог New Item для создания DLL-библиотеки. [21] |
Порядок выделения памяти под параметры и освобождения ее различен для разных языков программирования. Для того чтобы не возникла ошибка времени выполнения, ог5ъяь; - нн функции в DLL-библиотеке и ее объявление в приложении должны использовать одинаковый механизм передачи параметров. [22]
В противном случае либо возникнет ошибка времени выполнения, либо результат - не определен. [23]
В фазе выполнения осуществляется трансляция транзакции в распределенную процедуру использующую в качестве входа данные, полученные в предыдущей фазе. Выполнение контролируется ТМ, чтобы иметь возможность обрабатывать ошибки времени выполнения и осуществлять посылку команд DM в требуемом порядке. Выходом является список пунктов данных, которые должны быть записаны в постоянную базу данных или распечатаны пользователю. Отметим, что простейший путь выполнения транзакции заключается в сборе всей необходимой информации ( всего множества чтения) на одном участке и выполнении этой транзакции, как обычно. Но очевидные недостатки такого метода: необходимость пересылки данных, часто очень большого количества, между участками и полное пренебрежение возможностями параллельной обработки - вынуждают применять более сложные методы. В SDD-1 планировщик доступа порождает программы, состоящие из двух фаз: редукции и оконечной обработки. В фазе редукции осуществляется максимально возможное уменьшение множества чтения выполняемой транзакции. Для этого используются известные операции реляционной алгебры: проекции и ограничения и операция полусоединения. [24]
Объявление объекта с модификатором const способствует последовательному проведению в жизнь принципа минимума привилегий. Случайные попытки изменить объект выявляются во временя компиляции и не приводят к ошибкам времени выполнения. [25]
Вы вводите значение О для второго числа ( В), программа завершается с ошибкой времени выполнения. [26]
Тип variant имеет смысл использовать в тех случаях, когда тип того или иного объекта заранее не известен, или когда какие-то функции и процедуры требуют именно такой тип аргументов. К тому же недопустимые операции с переменными типа variant приводят к ошибкам времени выполнения, тогда как аналогичные недопустимые операции с переменными других типов выявляются на этапе компиляции. [27]
Данный ключ приводит в действие и отменяет генерирование кода проверки границ. При указании R все выражения с индексированными строками и массивы проверяются на предмет нахождения индекса внутри их границ, а все операторы присваивания скалярным и переменным величинам типа диапазон проверяются на принадлежность заданным границам. Если обнаруживается нарушение диапазона, то программа завершает свою работу, выводя сообщения об ошибке времени выполнения. Приведенная в действие проверка границ замедляет работу программы и увеличивает ее размер. [28]
В зависимости от режима приводится в действие или отменяется генерирование кода проверки переполнения стека. При указании S компилятор генерирует в начале каждой процедуры или функции код, который проверяет, достаточное ли место в стеке выделено для локальных переменных. Если в стеке места недостаточно, то обращение к процедуре или функции, скомпилированное с указанием S, приводит к завершению работы программы, которая при этом выводит сообщение об ошибке времени выполнения. [29]
Правило совместимости типов Delphi для классов-наследников позволяет использовать класс-наследник там, где ожидается использование класса-родителя. Как упоминалось ранее, обратный вариант невозможен. Теперь давайте представим, что класс TDog имеет метод Eat, который не представлен в базовом классе TAnimal. Если переменная MyAnimal обращается к собаке, она сможет вызвать эту функцию, но если переменная относится к другому классу, то попытка вызова приведет к ошибке. Явное приведение типов может привести к неприятной ошибке времени выполнения ( или, еще хуже, проблеме наложения при записи в памяти), поскольку компилятор не сможет определить, является ли верным тип объекта и действительно ли существует вызываемый метод. [30]