Учебные материалы по математике | Свойства и методы объектов debug, err | Matematiku5
Вузы по математике Готовые работы по математике Как писать работы по математике Примеры решения задач по математике Решить задачу по математике online

Свойства и методы объектов debug, err


Автозавершение не работает при редактировании кода и использовании директив условной компиляции, если код не является частью текущей ветви.

13. Свойства и методы объектов Debug, Err. Примеры.

Свойства

Свойство Description

Свойство для чтения и записи. Возвращает или задает строку описания, соответствующую ошибке.

Свойство Erl

Только для чтения. Возвращает целое число, указывающее номер строки последнего выполненного оператора.

Свойство HelpContext

Свойство для чтения и записи. Возвращает или задает объект типа Integer, содержащий идентификатор контекста темы в файле справки.

Свойство HelpFile

Свойство для чтения и записи. Возвращает или задает выражение типа String, содержащее полный путь к файлу справки.

Свойство LastDLLError

Только для чтения. Возвращает код системной ошибки, возникшей при вызове библиотеки динамической компоновки (DLL).

Свойство Number

Свойство для чтения и записи. Возвращает или задает числовое значение, определяющее ошибку.

Свойство Source

Свойство для чтения и записи. Возвращает или задает выражение типа String, определяющее имя объекта или приложения, первоначально создавшего ошибку.

Методы

Метод Clear

Удаляет все параметры свойств объекта Err.

Метод Raise

Создает ошибку времени выполнения; может использоваться вместо оператора Error.

Объект Err (Visual Basic)

Содержит сведения об ошибках во время выполнения.

Заметки

Свойства объекта Err устанавливаются генератором ошибки — средой Visual Basic, объектом или программистом.

При возникновении ошибки во время выполнения свойства объекта Err заполняются данными, однозначно определяющими ошибку, а также сведениями, которые можно использовать для ее обработки или ее изучения. Для создания ошибки во время выполнения в коде используйте метод Raise.

Свойства объекта Err сбрасываются в нуль или строки нулевой длины ("") после инструкции Exit Sub, Exit Function, Exit Property или Resume Next внутри подпрограммы обработки ошибок. При использовании любой формы оператора Resume за пределами подпрограммы обработки ошибки свойства объекта Err не сбрасываются. Метод Clear может использоваться для явного сброса Err.

Используйте метод Raise вместо оператора Error для создания ошибок во время выполнения для системных ошибок и модулей класса. Решение о том, следует ли использовать метод Raise в другом коде зависит от полноты данных, которые требуется возвращать.

Объект Err является внутренним объектом с глобальной областью действия. Следовательно, создание в коде экземпляра этого объекта не требуется. Примечание.

Можно использовать Функция ErrorToString для поиска сообщения об ошибке, соответствующего номеру конкретной ошибки.

Пример

В этом примере показано использование свойств объекта Err при формировании диалогового окна с сообщением об ошибке. Следует отметить, что если сначала используется метод Clear, то при создании ошибки Visual Basic с помощью метода Raise свойствами объекта Err становятся значения Visual Basic по умолчанию. Свойство Description возвращает строку с описанием ошибки.

Язык Visual Basic

Dim Msg As String

‘ If an error occurs, construct an error message.

On Error Resume Next ‘ Defer error handling.

Err. Clear()

Err. Raise(6) ‘ Generate an "Overflow" error.

‘ Check for error, then show message.

If Err. Number <> 0 Then

Msg = "Error # " & Str(Err. Number) & " was generated by " _

& Err. Source & ControlChars. CrLf & Err. Description

MsgBox(Msg, MsgBoxStyle. Information, "Error")

End If
14.Приемы оптимизации кода

Объявление переменных

Для уменьшения размеров требуемой памяти и ускорения выполнения операций над данными:

    При работе с большими массивами данных, размер которых, как правило, может изменяться, используйте динамические массивы или динамические структуры данных. Объявляйте переменные в строгом соответствии с их возможным типом. Не используйте без крайней необходимости тип Variant. Работа с Variant требует больше памяти и дополнительных преобразований. При задании типа, как правило, используйте тип с более узкой областью определения, достаточной для представления возможных значений. Здесь могут быть исключения, специфические для VBA. Так переменные типа Integer преобразуются к типу Long, так что разумнее задавать сразу тип Long вместо типа Integer. Операции с плавающей точкой выполняются более долго, поскольку требуют обращения к сопроцессору. Поэтому тип Single и Double следует использовать только в случае действительной необходимости. Иногда, можно воспользоваться типом Currency для выполнения подобных действий. В этом случае потребуется больше памяти, но не будет обращений к сопроцессору с плавающей точкой. При работе с объектами следует вводить переменные соответствующего объектного типа. Они хранят ссылки на объекты, а работа со ссылками выполняется значительно быстрее, чем с самими объектами. При объявлении объектных переменных избегайте объявления Object, указывайте явный тип объекта. Типы Object и Variant весьма полезные типы, но применять их нужно только в случае действительной необходимости.

В одном из примеров, я приводил таблицу временных измерений выполнения арифметических операций над данными разных типов. Рекомендую провести подобные замеры в более полном объеме.

Математические операции
    При работе с целыми используйте целочисленные операции, — деление нацело, взятие остатка и другие, не выводящие за пределы целых чисел. В выражениях, где одновременно присутствуют целые числа и числа с плавающей точкой перед проведением операций всегда происходит преобразование к типам с плавающей точкой Single и Double. Для уменьшения подобных преобразований, записывайте выражения так, чтобы пересечение переменных целого и плавающего типа было, по возможности, минимальным.
Строковые операции
    При работе со строками используйте введенные в Office 2000 функции Replace, функции разбора строки и другие. Ранее мы подробно рассказали об их достоинствах. Избегайте, по возможности, использования конкатенации. Используйте Replace в большинстве случаев. В тех случаях, когда заменяется одна подстрока на другую такой же размерности, можно использовать функцию Mid, как в следующем примере:
·  Public Sub TestCode()
·  Dim Text As String
·  Text = "Компилятор кода"
·  Mid(Text, 1, 5) = "Транс"
·  Debug. Print Text
·  End Sub
    Строковые константы VBA могут сократить время вычислений, позволяя избежать вызовов функций. Так, например, эффективнее использовать константу vbCrLf, чем комбинацию символов Chr(13), Chr(10), задающих возврат каретки и перевод строки. Иногда медленные операции над строками можно изменить на операции работы с их кодами. Код
·  If Asc(Text) = 202

работает быстрее, чем код

If Left(Text,1) = "K"

Злоупотреблять такими оптимизациями не стоит, поскольку первый фрагмент менее понятен, чем второй. Он нуждается, по крайней мере, в комментариях.

Циклы

Когда требуется уменьшить размеры используемой памяти, нужно начинать с чистки массивов. Когда требуется уменьшить время выполнения программы, нужно начинать с чистки циклов. Особо тщательно нужно оптимизировать выполнение самых внутренних циклов. Каждая миллисекунда, сэкономленная на выполнении внутреннего цикла, может обернуться сэкономленными часами на выполнении всей программы. Вот несколько советов, полезных при работе с циклами:

    Все вычисления, которые могут быть сделаны вне цикла, должны быть вынесены из него. Предусматривайте возможность досрочного завершения цикла, когда решение задачи уже получено. Аккуратно работайте в цикле с элементами массивов. Старайтесь избегать лишнего вычисления индексных выражений и обращений к элементам массива. Часто введение дополнительных переменных позволяет существенно ускорить работу с элементами массивов. При работе с коллекциями объектов Office 2000 используйте цикл For Each вместо обычного цикла For. В большинстве случаев это приводит к существенному выигрышу во времени исполнения цикла.

Завершая эту лекцию, хочу еще раз сказать, что главная оптимизация достигается на уровне проектных решений, выбора структуры данных и алгоритмов. К ниже перечисленным советам следует относиться с определенной осторожностью. Оптимизация не должна идти во вред ясности написания программ. Не всегда в ней есть необходимость. Но если такая необходимость возникает, то, в первую очередь, нужно выявить узкие места в программе и их, в основном, и оптимизировать.

Наташа

Автор

Наташа — контент-маркетолог и блогер, но все это не мешает ей оставаться адекватным человеком. Верит во все цвета радуги и не верит в теорию всемирного заговора. Увлекается «нефрохиромантией» и тайно мечтает воссоздать дома Александрийскую библиотеку.

Распродажа дипломных

 Скидка 30% по промокоду Diplom2020