Sunteți pe pagina 1din 5

TRATAREA ERORILOR I DEPANAREA

PROGRAMELOR VISUAL BASIC


Tipuri de erori
Existmaimultetipurideerori: erorinfazadeproiectare (eroride
sintax)caresurvincndocomandestescrisgreit(cuvintecheieincorecte,
parametrii lips, expresii incorecte, etc.); erori de execuie (detectabile) care
suntcauzatedesituaiinecontrolabiledeprogram(mprirealazero,unfiier
lips,unfiierdejaactiv,depireasauviolareamemoriei,etc.);eroridelogic
careduclaobinereaderezultateincorectesauimprevizibile.
Tratarea erorilor de execuie
Erorilederulare(execuie)semainumescidetectabile,deoarece
programulVisualBasicsesiseazcsaprodusoeroare,dndposibilitatea
detectriiisoluionriiei.
Metoda standard de a trata erorile detectabile impune utilizarea
instruciuniiOn Error GoTo etichet.
Structura procedurilor supuse tratrii erorilor
Tratarea erorilor presupune afiarea numrului, descrierea erorii i
sugerarea ctorva alternative de a continua (rencercare Retry), ignorare
(Ignore)sauabandonare(Abandon).Numruleroriiestereturnatprinfuncia
ERR ( ).Mesajulexplicativasociatnumruluiuneierorivafitransmiscu
funcia ERROR$ (numr_eroare ).Sugestiaprivindcontinuareaprelucrrii
se va face prin intermediul butoanelor de comand din cadrul unei casete
MsgBox.Codulataatbutoanelordecomandpoatefi: Resume (pentru
Retry), Resume Next (pentru Ignore) i Resume etichet (pentru
Cancel).
Cod eroare
3

Mesaj eroare
Return fr GoSub
1

5
6
7
9
10
11
13
14
16
17
18
19
20
28
35
47
48
49
51
52
53
54
55
57
58
59
61
62
63
64

Apel de procedura invalid


Depire
Epuizarea resurselor de memorie
Indice n afara domeniului
Aceast matrice este de dimensiune fix sau
este blocat temporar
mprire la zero
Nepotrivire de tip
Depirea dimensiunii sirului
Expresie prea complex
Operaia cerut nu poate fi efectuat
ntrerupere generat de utilizator
Lipsete instruciunea Resume
S-a ntlnit instruciunea Resume fr s fi
survenit o eroare
Epuizarea spaiului alocat stivei
Procedur, funcie sau proprietate nedefinit
Prea multe aplicaii DLL client
Eroare la ncrcarea unui fiier DLL
Eroare de sintax la apelarea unui fiier DLL
Eroare intern
Nume sau numr de fiier greite
Fiierul nu a fost gsit
Mod incorect de acces la fiier
Fiierul este deja deschis
Eroare la dispozitiv de intrare/ieire (I/O)
Fiier existent
Lungime incorect a nregistrrii
Discul e plin
Tentativ de citire dup ntlnirea sfritului de
fiier (EOF)
Numr de nregistrare incorect
Nume de fiier incorect
2

65
66
67
68
70
71
72
74
75
76
91
92
93
94
427
428
429
430
431
452
453
456
457
460
461
480
481
482
483

Fiierul ncrcat anterior


Definiie de procedura duplicat
Prea multe fiiere
Dispozitiv inaccesibil
Operaie nepermis
Discul nu este pregtit
Eroare de suport magnetic
Discul nu poate fi redenumit
Eroare de acces la cale/fiier
Calea nu a fost gsit
Variabil obiect sau bloc With nedefinite
Ciclul For neiniializat
ir ablon invalid
Utilizare greit a specificatorului Null
Obiectul specificat nu este obiect Printer
Obiectul nu este un control
Obiectul nu este o form
Nu exist nici un control activ n momentul
respectiv
Nu exist nici o form activ n momentul
respectiv
Ordinal incorect
Funcia DLL specificat nu a fost gsit
Get i Put nu pot fi utilizate ca matrice de tip
Variant
Aceast tast este deja asociat unui element al
coleciei
Format Clipboard incorect
Formatul specificat difer de formatul datelor
Nu poate fi creat imaginea AutoRedraw
Imagine invalid
Eroare la tiprire
Imprimanta nu suport proprietatea specificat
3

484

Probleme la obtinerea informaiilor referitoare la


imprimant
485
Tipul imaginii este invalid
520
Nu poate fi golit memoria temporar Clipboard
521
Nu poate fi deschis memoria temporar
Clipboard
Erorile Visual Basic cel mai des ntlnite
etTratezEroare:
Dim iRaspuns As Integer
If Err() = 6 Then
strMesaj = "Depasirea limitei Max a valorii de vizualizare"
Else
strMesaj = "Alta eroare"
End If
iRaspuns = MsgBox(strMesaj, vbCritical + vbAbortRetryIgnore, "Eroarea numarul " & Str(Err()))
Select Case iRaspuns
Case vbAbort
Exit Sub
Case vbRetry
Resume
Case vbIgnore
Resume Next
End Select

Mediul de depanare Visual Basic


Visual Basic pune la dispoziie depanatorul (Debuggerul) pentru a
puteadesclcicodulpentruagsieroareaiaoremedia.
DepanatorulVisualBasicesteocoleciedeinstrumenteaccesibileprin
opiunile Tools i Run alemeniuluiprincipal,aelementelorcorespondente
dinbaradeinstrumentesauatastelorrapide:
Opiunea Add Watch dinmeniul Tools reprezintuninstrument de
depanarefoarteutilizat.Practic,putemfiatenionaipebaza punctelorde
observaieinseratecndunanumitevenimentsaprodus(ovariabilaajuns
laoanumitvaloare,omrimedevinenegativsauzero,etc.);
Stabilirea unor puncte de ntrerupere pe anumite linii de program, cu
ajutorultastei F9 sauaopiunii Toggle Breakpoint (sauacomenzilor
Stop).Liniilepecaresaufixatpuncteledentreruperevorfimarcatecu
punct rou. Dezactivarea punctelor de ntrerupere se realizeaz cu
CTRL+SHIFT+F9(evident,nuacioneaziasupracomenzilorStop).

Execuia programului pas cu pas (dup stabilirea unei ntreruperi) cu


ajutorultastei F8 saucuopiunile Step Into sau Step Over pentrua
depistacurgereaprogramuluisauapeluriledeproceduri(ordineaapelurilor).
Cndoprocedurnunemaiintereseaz soanalizmputemsripesteea
(StepOver),dacanumitenregistrrinuneintereseazputemsripesteele
fieprinpoziionareacursoruluideundencepeparcurgereapascupas(Run
tocursor),fieacionndtastele<Ctrl>+<F8>.
Vizualizarea datelor i rezultatelor n fereastra Immediate, folosit
pentruverificareavalorilorunorvariabileiexpresiincazulajungeriintr
unpunctdentreruperesauexecutriiprogramuluipascupas.Verificarea
presupuneplasareaexpresieisauvariabileinfereastrprecedatede?(semnul
ntrebrii). Activarea ferestrei se face apsnd tastele <Ctrl>+G sau
selectndcomanda Immediate Window dinopiunea View ameniului
principal.

S-ar putea să vă placă și