Getthreadinfo vervangt Lsi_info

Een van de dingen die ik mij zelf heb aangeleerd bij het maken van een applicatie is altijd gebruik te maken van een duidelijke foutafhandeling waarbij Lsi_info vaak werd gebruikt.

Meestal zag die code er ongeveer uit als:

Function doeDingen() As Boolean
On Error Goto ErrorHandler
‘Hier komt de code ….

Exit Function
ErrorHandler:
MsgBox Lsi_info(2) & ” : Error ” & Error & ” (” & Err & “) on line ” & Erl & “.”
Exit Function
Resume Next
End Function

Lsi_info

Lsi_info was in de vroegere versies van Lotus Notes eigenlijk de enige methode om informatie te krijgen over de huidige thread.

Een aantal regelmatig gebruikte gegevens waren:

Lsi_info(1) ‘Huidige regel in de Lotusscript Source Code
Lsi_info(2) ‘Huidige functie of sub
Lsi_info(3) ‘Huidige module
Lsi_info(6) ‘LotusScript versie
Lsi_info(9) ‘ Taal code
Lsi_info(11) ‘Totaal aantal code regels van de huidige module
Lsi_info(12) ‘Naam van de aanroepende functie of sub
Lsi_info(13) ‘Naam van de aanroepende module
Lsi_info(14) ‘Lijst van alle modules die aangeroepen zijn tot dit moment
Lsi_info(50) ‘ LotusScript Geheugen gealloceerd
Lsi_info(51) ‘LotusScript Geheugen gealloceerd van het besturingssysteem
Lsi_info(52) ‘LotusScript geheugen blokken in gebruik

IBM beweerd echter dat Lsi_info niet gebruikt mag worden omdat dit alleen bedoeld is voor intern gebruik en mogelijk voor een instabiel systeem kan zorgen, met name op 64Bit systemen.
Daarom heeft men in de meer recentere versies van Notes een nieuwe methode ter beschikking gesteld: GetThreadInfo.

GetThreadInfo

De aanbevolen schrijfwijze zou dan ook worden:

Function doeDingen() As Boolean
On Error GoTo ErrorLabel
‘En hier komt de code weer ….
Dim i As integer
i = Evaluate(“@Error”,Nothing)
ExitLabel:
Exit Function

ErrorLabel:
MsgBox GetThreadInfo(1) & ” : Error ” & Error & ” (” & Err & “) On Line ” & Erl & “.”, 16 , “Error”
Resume ExitLabel
End Function

 

Foutmelding

 

De aanroepen die ondersteund worden zijn:

Getthreadinfo(0) ‘LSI_THREAD_LINE: Huidige regel in de Lotusscript Source Code
Getthreadinfo(1) ‘LSI_THREAD_PROC: Huidige functie of sub
Getthreadinfo(2) ‘LSI_THREAD_MODULE: Huidige module
Getthreadinfo(3) ‘LSI_THREAD_VERSION: LotusScript versie
Getthreadinfo(4) ‘LSI_THREAD_LANGUAGE: Taal code
Getthreadinfo(5) ‘LSI_THREAD_COUNTRY: Regionale instelling
Getthreadinfo(6) ‘LSI_THREAD_TICKS:Krijg actuele kloktikken
Getthreadinfo(7) ‘LSI_THREAD_TICKS_PER_SEC: Krijg kloktikken per seconde (alleen ondersteund op platforms die parallelle verwerking van primitieven ondersteunen)
Getthreadinfo(8) ‘LSI_THREAD_PROCESS_ID: Huidige proces-ID ophalen (alleen ondersteund op platforms die primitieven voor parallelle verwerking ondersteunen)
Getthreadinfo(9) ‘LSI_THREAD_TASK_ID: Huidige taak-id ophalen (alleen ondersteund op platforms die primitieven voor parallelle verwerking ondersteunen)
Getthreadinfo(10) ‘LSI_THREAD_CALLPROC: Naam van de aanroepende functie of sub
Getthreadinfo(11) ‘LSI_THREAD_CALLMODULE: Naam van de aanroepende module

Bronnen:

https://www.ibm.com/support/docview.wss?uid=swg21237286 (deze link naar IBM werkt niet meer na de overname van Domino door HCL).
https://help.hcltechsw.com/dom_designer/9.0.1/appdev/LSAZ_GETTHREADINFO.html

 

Geplaatst in Lotusscript, Ontwikkeling en getagd met , , , .