ການຊ່ວຍເຫຼືອ LibreOffice 26.2
ໃຊ້ວັດຖຸ Err ຂອງ VBA ເພື່ອສ້າງ ຫຼື ຈັດການຂໍ້ຜິດພາດທີ່ເກີດຂຶ້ນໃນລະຫວ່າງການເຮັດວຽກ.
Err ແມ່ນວັດຖຸສາກົນທີ່ມີມາໃຫ້ໃນ VBA ເຊິ່ງຊ່ວຍໃຫ້:
ສ້າງຂໍ້ຜິດພາດ Basic ທີ່ກຳນົດໄວ້ລ່ວງໜ້າ
ສົ່ງ (throw) ຂໍ້ຍົກເວັ້ນທີ່ຜູ້ໃຊ້ກຳນົດເອງ
ກຳນົດຊື່ຂອງຣູທິນ (routine) ທີ່ເປັນຕົ້ນເຫດຂອງຂໍ້ຜິດພາດ
ອະທິບາຍຂໍ້ຜິດພາດ ແລະ ວິທີການແກ້ໄຂທີ່ເປັນໄປໄດ້
ວັດຖຸ Err ຂອງ VBA ມີຄຸນສົມບັດ ແລະ ເມທອດດັ່ງຕໍ່ໄປນີ້:
Err.Description As String
ຄຸນສົມບັດ Description ບອກລັກສະນະຂອງຂໍ້ຜິດພາດ. Description ຈະໃຫ້ລາຍລະອຽດກ່ຽວກັບສາເຫດຕ່າງໆທີ່ອາດພາໃຫ້ເກີດຂໍ້ຜິດພາດ. ໂດຍທົ່ວໄປ, ມັນຈະແນະນຳຂັ້ນຕອນການແກ້ໄຂເພື່ອຊ່ວຍແກ້ບັນຫາ ແລະ ປ້ອງກັນບໍ່ໃຫ້ເກີດຂຶ້ນອີກ. ໃນ Basic ຈະກົງກັບຟັງຊັນ Error ສຳລັບຂໍ້ຜິດພາດທີ່ກຳນົດໄວ້ລ່ວງໜ້າຂອງ LibreOffice.
Err.Number As Long
ລະຫັດຂໍ້ຜິດພາດທີ່ກ່ຽວຂ້ອງ. ຄຸນສົມບັດເລີ່ມຕົ້ນຂອງວັດຖຸ Err ແມ່ນ Number. ໃນ LibreOffice Basic ຈະກົງກັບຟັງຊັນ Err.
Err.Source As String
Source ລະບຸຊື່ຂອງຣູທິນທີ່ເຮັດໃຫ້ເກີດຂໍ້ຜິດພາດ. Source ແມ່ນຕົວເລືອກສຳລັບຂໍ້ຜິດພາດທີ່ຜູ້ໃຊ້ກຳນົດເອງ.
Err.Clear()
ລ້າງຄ່າ description, Erl, number ແລະ source ຂອງຂໍ້ຜິດພາດປັດຈຸບັນ. ໃນ LibreOffice Basic ຈະກົງກັບຄຳສັ່ງ Resume.
Err.Raise(Number As Long, Optional source As String, Optional description As String)
ສ້າງ (Raise) ຂໍ້ຜິດພາດທີ່ຜູ້ໃຊ້ກຳນົດເອງ ຫຼື ຂໍ້ຜິດພາດທີ່ກຳນົດໄວ້ລ່ວງໜ້າ. ໃນ LibreOffice Basic ຈະກົງກັບຄຳສັ່ງ Error.
Number: ລະຫັດຂໍ້ຜິດພາດທີ່ຜູ້ໃຊ້ກຳນົດເອງ ຫຼື ກຳນົດໄວ້ລ່ວງໜ້າ ທີ່ຈະສ້າງຂຶ້ນ.
ລະດັບລະຫັດຂໍ້ຜິດພາດ 0-2000 ແມ່ນຖືກຈອງໄວ້ສຳລັບ LibreOffice Basic. ຂໍ້ຜິດພາດທີ່ຜູ້ໃຊ້ກຳນົດເອງຄວນເລີ່ມຕົ້ນຈາກຄ່າທີ່ສູງກວ່ານີ້ ເພື່ອປ້ອງກັນການຊ້ຳຊ້ອນກັບການພັດທະນາໃນອະນາຄົດຂອງ LibreOffice Basic.
Source: ຊື່ຂອງຣູທິນທີ່ສ້າງຂໍ້ຜິດພາດ. ແນະນຳໃຫ້ໃຊ້ຮູບແບບ "myLibrary.myModule.myProc".
Description: ຄຳອະທິບາຍຂອງບັນຫາທີ່ພາໃຫ້ຢຸດການເຮັດວຽກ, ພ້ອມກັບສາເຫດຕ່າງໆທີ່ອາດເປັນໄປໄດ້. ແນະນຳໃຫ້ລະບຸລາຍການວິທີການແກ້ໄຂຢ່າງລະອຽດເພື່ອຊ່ວຍແກ້ບັນຫາ.
Option VBASupport 1
Sub ThrowErrors
Dim aDesc As String : aDesc = Space(80)
On Local Error GoTo AlertAndExecNext
Err.Raise(91, "ThrowErrors", Error(91))
Err.Raise 2020, Description:="ນີ້ແມ່ນຂໍ້ຜິດພາດທີ່ຜູ້ໃຊ້ກຳນົດເອງທີ່ຕັ້ງໃຈສ້າງຂຶ້ນ …"
Err.Raise(4096, "Standard.Module1.ThrowErrors", aDesc)
Exit Sub
AlertAndExecNext:
errTitle = "ຂໍ້ຜິດພາດ "& Err &" ທີ່ແຖວ "& Erl &" ໃນ "& Err.Source
MsgBox Err.Description, MB_ICONEXCLAMATION, errTitle
Resume Next
End Sub
ClassModule ແບບສັ້ນ ທີ່ຄຸມວັດຖຸ Err ຂອງ VBA ສາມາດຊ່ວຍແຈກຢາຍຄຸນສົມບັດ ແລະ ເມທອດຂອງ Err ໃຫ້ກັບໂມດູນ LibreOffice Basic ມາດຕະຖານໄດ້.
Option ClassModule
Option VBASupport 1
Public Property Get Description As String
Description = Err.Description
End Property
Public Property Get Number As Long
Number = Err.Number
End Property
Public Property Get Source As String
Source = Err.Source
End Property
Public Sub Clear
Err.Clear
End Sub
Public Sub Raise( number As Long, Optional Source As String, Optional Description As String)
Err.Raise number, Source, Description
End Sub
Function Exc As Object
Exc = New Exception
End Function
Sub aRoutine
try:
On Local Error GoTo catch:
Exc.Raise(4096, "myLib.myModule.aRoutine", _
"ຄຳອະທິບາຍແບບຫຼາຍແຖວສຳລັບຂໍ້ຍົກເວັ້ນທີ່ຜູ້ໃຊ້ກຳນົດເອງນີ້")
' ໂຄ້ດຂອງທ່ານຢູ່ບ່ອນນີ້ …
finally:
Exit Sub
catch:
errTitle = "ຂໍ້ຜິດພາດ "& Exc.Number &" ທີ່ແຖວ "& Erl &" ໃນ "& Exc.Source
MsgBox Exc.Description, MB_ICONSTOP, errTitle
Resume finally
End Sub
ຄຳສັ່ງ Error ຫຼື ໂມດູນຄລາສທີ່ຄ້າຍກັບ Exception ສາມາດໃຊ້ແທນກັນໄດ້, ແຕ່ແບບຫຼັງຈະມີຄຸນສົມບັດເພີ່ມເຕີມ.