СДЕЛАЙТЕ СВОИ УРОКИ ЕЩЁ ЭФФЕКТИВНЕЕ, А ЖИЗНЬ СВОБОДНЕЕ

Благодаря готовым учебным материалам для работы в классе и дистанционно

Скидки до 50 % на комплекты
только до

Готовые ключевые этапы урока всегда будут у вас под рукой

Организационный момент

Проверка знаний

Объяснение материала

Закрепление изученного

Итоги урока

Սխալները Visual Basic - ում

Категория: Информатика

Нажмите, чтобы узнать подробности

Просмотр содержимого документа
«Սխալները Visual Basic - ում»

ՍԽԱԼՆԵՐԻ ՀԱՅՏՆԱԲԵՐՈՒՄԸ և ՄՇԱԿՈՒՄԸ VISUAL BASIC-ՈւՄ


Սխալների տեսակները


Ծրագրի աշխատանքի ժամանակ կարող են առաջանալ 4 տեսակի սխալներ`

  • Սինտակսիսային սխալ,

  • Ծրագրի կառուցվածքային սխալ,

  • Սխալներ, որոնք առաջանում են ծրագրի կատարման ժամանակ,

  • Տրամաբանական սխալներ:

Սինտակսիսային սխալների առաջացման ժամանակ արդյունք կարող են լինել բանալիային բառերի սխալ գրումը կամ օպերատորների անթույլատրելի կոմբինացիաների օգտագործումը: Visual Basic-ը սինտակսիսային սխալները ճանաչում է անմիջապես, հենց կուրսորը հեռացվում է ընթացիկ տողից: Սխալի հայտնաբերման դեպքում Visual Basic-ը տալիս է համապատասխան հաղորդագրություն` սխալի վերաբերյալ:



Սխալների մշակումը


Կախված նրանից, թե որքան մանրակրկտորեն է մշակված և կազմված ծրագիրը, երբեք պետք չէ լիովին հերքել սխալների առաջացման հնարավորությունը: Այդ պատճառով ծրագրերը գրելիս պետք է մշակել չմշակվող սխալների առաջացումը: Հրամանը ,որն օգտագործվում է կոնկրետ պրոցեդուրայում դրանց հայտնաբերման համար, ունի հետևյալ տեսքը`


On Error GoTo …


Որտեղ …-ը նշիչի անվան համար է (տողի համարն է), որով նշվում է սխալի մշակման համար ընտրված ֆրագմենտի սկիզբը: Նշված ֆրագմենտը պետք է տեղավորվի այդ իսկ պրոցեդուրայի սահմաններում: Հնարավոր չէ On Error GoTo օպերատրով անցնել մեկ այլ պրոցեդուրայի: On Error օպերատորն ինքը սխալների մշակում չի կատարում, այլ կառավարումը հանձնում է այն պրոցեդուրային, որը նախատեսված է սխալները մշակելու համար (անմիջապես սխալի հայտնաբերումից հետո): Սխալի հայտնաբերման համար նշիչը իդենտիֆիկատnր է, որի վերջում դրվում է երկու կետ: Այսպիսով, նշիչը նշում է ծրագրի ֆրագմենտի սկիզբը: Օրինակ`


Error Trap:

հետևում է ծրագրի կոդը


Դիտարկենք սխալի մշակման մի փոքր պրոցեդուրա.


Private Sub Command1_Click()

If Err.Number 0 Then Err.Clear

On Error GoTo err_

Err.Raise (9)

Exit Sub

err_:

MsgBox Err.Number

MsgBox Err.Description

Err.Clear

Resume Next

End Sub


Քանի որ հնարավոր է` ծրագիրը կախվի (վերջանա) սխալի մշակման պրոցեդուրայում, վատ միտք չէ Exit օպերատորի օգտագործումը տողում` անմիջապես սխալի հայտնաբերման ֆրագմենտի նշիչից առաջ:

On Error GoTo հրամանը կարող է տեղակայվել իրավիճակի մշակման պրոցեդուրայի, ֆունկցիայի կամ Sub պրոցեդուրայի ցանկացած մասում: Ընդհանրապես հենց այդտեղ էլ տեղակայվում է սխալների մշակման ծրագրային կոդը: Միակ բացառող դեպքն այն է, երբ պրոցեդուրան կանչվում է այլ պրոցեդուրայի մեջ: Այդ դեպքում Visual Basic-ը ստուգում է սխալների մշակման ֆրագմենտի առկայությունը սկզբից` ընթացիկ պրոցեդուրայում, հետո` երկրորդական պրոցեդուրայում:

On Error GoTo-ն օգտագործելով` ծրագրի կատարման ժամանակ սխալներն անհետանում են: Սակայն այն պետք է օգտագործել այնպես, ղեկավարի կոդի տարածքը, որը իդենտիֆիկացնում է խնդիրը, և հնարավոր է` լուծում է այն:

Եթե սխալը հնարավոր է ճշտել, ապա Resume օպերատորն օգտագործվում է ծրագրում այն տեղին վերադառնալու համար, որտեղ այն տեղի է ունեցել: Սակայն հնարավոր չէ սխալը ճշտել, եթե հայտնի չէ դրա առաջացման պատճառը: Դա կարելի է իմանալ` օգտագործելով Err ֆունկցիան և Err օբյեկտը: Այն իրենից ներկայացնում է ամբողջ արժեք, որը կարելի է ընդունել որպես փոփոխական: Օրինակ, եթե գրենք`


Error Number = Err.Number


ապա Error Number փոփոխականի արժեքը կլինի սխալի համարը:

Visual Basic-ը կարող է իդենտիֆիկացնել 80-ից ավելի սխալներ` կատարման ժամանակ:

Այժմ նկարագրենք Select Case-ը:


Select Case


Յուրաքանչյուր առանձին դեպքում ծրագիրը ստուգում է սխալի տիպը և առաջարկում է դրա ուղղման հնարավոր ձևերը: Case Else-ի օգտագործման դեպքում էկրանին հայտնվում է սխալի համարը: Ամեն դեպքում սխալների մշակման ցիկլից հետո օգտվողին առաջարկվում է ընտրության հնարավորություն` ինֆորմացիոն պանելի օգնությամբ:

Resume հրամանը թույլ է տալիս բաց թողնել օպերատորը, որում առաջացել է սխալը:Եթե օգտագործել


Resume Next


Visual Basic-ը կսկսի մշակել օպերատոր, որը գտնվում է անմիջապես ընթացիկ օպերատորից հետո: Կարելի է օգտագործել նաև


On Error Resume Next


Ցանկացած ծրագրային կոդի ավտոմատ թույլատրման (կատարման) համար, որը առաջացնում է սխալը:

Հետևությունն այն է, որ ծրագիրը միշտ չէ պետք ընդհատել` սխալի պատճառով: Այս օպերատորը հենց դրա համար է` Resume Next: Այն ունի մեկ սկզբունք` որ մի քայլ ետ: Կատարումը կշարունակվի` չնայած սխալի առկայությանը:

Բացի այդ, կարելի է վերսկսել ծրագրի աշխատանքը կոդի ցանկացած տողից, որի վրա նշիչ է դրված: Դրա համար օգտագործվում է հետևյալ օպերատորը`


Resume Label


Հիմնականում Visual Basic-ում նշիչներն օգտագործվում են միայն սխալների մշակման ֆրագմենտների նշման համար: Չնայած դրան` Basic-ի նախկին վերսիաների հետ համատեղելիության համար Visual Basic-ում ներառված է GoTo անպայման անցման օպերատորը, սակայն դրա կարիքը հազվադեպ է զգացվում:

Resume և Resume Next հրամաններն իրենց տարբեր ձևով են պահում վերադարձի ժամանակ այն դեպքում, երբ սխալը կատարվել է այլ պրոցեդուրայում:

Visual Basic-ն ունի օպերատոր`


Error (սխալի կոդի համարը)


Որը Visual Basic-ին ստիպում է աշխատել այնպես, իբրև կատարվել է սխալ` ցույց տրված համարով:

Եթե ծրագրավորողը համոզված է, որ ծրագիրն այլևս սխալների վերամշակման կարիք չունի, նա կարող է անջատել “սխալ մշակող”-ին հետևյալ օպերատրի միջոցով`


On Error GoTo 0


(չնայած 0-ն հիմնականում կարիք չկա գրել):

Visual Basic-ն օգտագործում է On Error GoTo-ն որպեսզի որոշի` որտեղից պետք է շարունակել:

Visual Basic-ի օբյեկտ Err-ը հատուկ օբյեկտ է, որի հատկությունները կարելի է ուսումնասիրել սխալի առաջացումից հետո: Արդեն նշվել է, թե ինչպես է աշխատում դրա Number հատկությունը (Err.Number):

Microsoft-ը խորհուրդ է տալիս օգտագործել Err օբյեկտի հատկություններն ու մեթոդները սխալների վերամշակման այլ տիպի ֆունկցիաների փոխարեն` բացի այն ծրագրերից, որոնք գրված են լեզվի վաղ վերսիաների համար:

Եթե անհրաժեշտ է գեներացնել սխալը թեսթային նպատակներով, կարելի է օգտագործել Err օբյեկտի Raise մեթոդը: Դրա սինտաքսիսը հետևյալն է `


Err. Raise(համար)


Եթե անհրաժեշտ է մուտքագրել ընթացիկ սխալի նկարագրությունը, օգտագործվում է հետևյալ օպերատորը`


Err.Description


Raise մեթոդը կարելի է օգտագործել` սխալների սեփական տիպերի որոշման համար:
































ԽՆԴԻՐ

Կազմել ծրագիր, որում Command 1–ի միջոցով մուտքագրվեն բաժանելին և բաժանարարը, Command 2-ի միջոցով կատարվի մուտքագրված թվերի բաժանում, և արդյունքը գրվի Text 1–ում:


Dim A As Double

Dim B As Double


Private Sub Command1_Click()

A = InputBox("Enter bajaneli", "bajaneli")

B = InputBox("Enter Bajanarar", "Bajanarar")

End Sub


Private Sub Command2_Click()

Text1.Text = Division(A, B)

End Sub


Private Sub Form_Load()

Form1.Caption = "Division"

Label1.Caption = " Ardyunq"

Text1.Text = " ardyunq "

Command1.Caption = "Enter"

Command2.Caption = "Division"

End Sub


Private Function Division(X As Double, Y As Double)

Dim N As String

Dim M As String

On Error Resume Next

Division = X / Y

If Err.Number 0 Then

N = MsgBox("Error! Bajanarary mutqagreq 0-yic tarber tiv")

M = MsgBox("Sxali hamarn e " & Err.Number, vbOKOnly, "Error " & Err.Number & " !")

End If

On Error GoTo 0

End Function












Խնդրի բացատրությունը



Դեպք 1: Եթե բաժանելին 0 է, բաժանում չի կատարում և էկրանին է բերում MsgBox` բաժանարարը մուտքագրել 0-յից տարբեր թիվ (սխալ №11):






























Դեպք 2: Եթե բաժանելին 0-յից տարբեր թիվ է, “Division” կոճակով կատարում է բաժանում` առանց որևէ սխալի հայտնաբերման:










8



Скачать

Рекомендуем курсы ПК и ППК для учителей

Вебинар для учителей

Свидетельство об участии БЕСПЛАТНО!