Помогни ни да направим Uroci.net по - богат! Добави урок

Обработване на грешки по време на изпълнение

bubust   трудност:    видян: 8932

Неструктурирано - Unstructured Error Handling

Техника за обработка на грешки, която се върти около вариации на иструкция On Error... се нарича неструктурирана (unstructured). Тази техника използва обект Err и стека за викане (call stack) на Visual Basic.

- Обект Err

Вграденият във Visual Basic (built-in) обект за грешки, наречен Err, е основен за нестуктурирано обработване на грешки.

Този обект има някои свойства и методи дадени в таблици 1 и 2.

Таблица 1.

Свойства на обект Err
Свойство

Описание
Description Кратък низ (string), описващ грешката.
HelpContext Контекстното ID за раздела от help, свързан с грешката.
HelpFile Пълното име на съответния help (помощен) файл, ако съществува
LastDLLError Върнатият код от функция, която е външна DLL.
Number Номерът на грешката.
Source Низът (string), определящ обекта, който генерира грешката,

примерно pplication.objectname, като например

Excel.Application.



Таблица 2.

Методи на обект Err
Метод Описание
Clear

Изтрива стойностите на всички свойства на обект Err.

Err().Clear( )
Raise Указва на Visual Basic да генерира runtime error и установява

стойностите на свойствата на обект Err равни на параметрите на

метод Raise :

Err.Raise(Number, Source, Description, _

HelpFile, HelpContext)



- Разчет на грешки при изпълнение - runtime errors

Visual Basic открива грешки при изпълнение веднага след като грешката се появи, установи свойствата на обект Err, и посочи локацията, в най-честия случай на реда предвиден от програмиста с On Error.... Тази локация може да е:

· Реда от кода непосредствено следващ този, в който е възникнала грешката.

· Друга локация вътре в offending procedure.

· Процедурата, която вика offending procedure, ако има такава. Ако няма, VB изработва съобщение за грешка и прекъсва праграмата.



- Обработка на грешка във ред (In-line error handling)

Обработката на грешка може да бъде "пренасочена" към ред, следващ реда от кода, където ще се открие грешката, най-често с инструкция On Error и тогава записът е такъв:

On Error Resume Next

Нарича се обработка на грешка във ред (in-line error handling).

Ето един пример за преименуване на файл:

Dim sOldName, sNewName As String

On Error Resume Next

' пита за съществуващо име на файл - file name

sOldName = InputBox("Enter the file name to rename")

' пита за ново име на файл - new name

sNewName = InputBox("Enter the new file name")

' преименоване на файла - Rename file

Rename("c:" & sOldName, "c:" & sNewName)

' Deal with error

If Err( ).Number = 53 Then

' грешка от ненамерен файл - File not found error

MsgBox("File " & sOldName & " not found")

Exit Sub

Else

' всички други грешки - errors

MsgBox(Err().Number & ": " & Err( ).Description)

Exit Sub

End If


Страници: 1 2 3 »

Регистрирайте се, за да добавите коментар


Калдейта ЕООД - © 2003-2010. Всички права запазени.
Препоръчваме: Национален Бизнес | Bomba.bg | IT Новини | Диплома.бг | TRAVEL туризъм | Реферати | AmAm.bg | Иде.ли | Курсови работи | Фото Форум | Spodeli.net | Фото-Култ | Atol.bg | Elmaz.com | MobileBulgaria.com | Казанлък.Com