ວັດຖຸ Err [VBA]

ໃຊ້ວັດຖຸ Err ຂອງ VBA ເພື່ອສ້າງ ຫຼື ຈັດການຂໍ້ຜິດພາດທີ່ເກີດຂຶ້ນໃນລະຫວ່າງການເຮັດວຽກ.

Err ແມ່ນວັດຖຸສາກົນທີ່ມີມາໃຫ້ໃນ VBA ເຊິ່ງຊ່ວຍໃຫ້:

ໄອຄອນ ຄຳເຕືອນ

ຄ່າຄົງທີ່, ຟັງຊັນ ຫຼື ອັອບເຈັກນີ້ຈະຖືກເປີດໃຊ້ດ້ວຍຄຳສັ່ງ Option VBASupport 1 ທີ່ວາງໄວ້ກ່ອນລະຫັດໂປຣແກຣມໃນໂມດູນ.


ວັດຖຸ 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
      

Exception ClassModule

ໄອຄອນ ເຄັດລັບ

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 ສາມາດໃຊ້ແທນກັນໄດ້, ແຕ່ແບບຫຼັງຈະມີຄຸນສົມບັດເພີ່ມເຕີມ.


ກະລຸນາສະໜັບສະໜູນພວກເຮົາ!

ກະລຸນາສະໜັບສະໜູນພວກເຮົາ!