Welcome to the #dominoforever Product Ideas Forum! The place where you can submit product ideas and enhancement request. We encourage you to participate by voting on, commenting on, and creating new ideas. All new ideas will be evaluated by HCL Product Management & Engineering teams, and the next steps will be communicated. While not all submitted ideas will be executed upon, community feedback will play a key role in influencing which ideas are and when they will be implemented.
For more information and upcoming events around #dominoforever, please visit our Destination Domino Page
FIVE YEARS of stubborn ignorance. They do not give a shit for the very basics in this product.
There should be a new LS version that is based on Eclipse and JVM. This would allow for stack traces, state of the art editing, try-catch-blocks, mixed language programming, multi-threading, easier debugging, ...
The line number is superfluous in the message, for this there is Erl.
<NameOfVariable> is also needed for "Variant does not contain object" and "Type mismatch".
Could we also have "Entry not found in Index" report back in a similar way? We need more information on what object caused the error
I created a framework for that (error handling, logging, tracing, unit testing) https://github.com/dev-ng/ls-dl
Didn't update it on github for a while as I don't see much interest.
We can make a stacktrace with linenumbers ourself, but it would be nice if all developers was using the same kind of error handling - and this requires better native support.
Create a public function:
'caveats
'Getthreadinfo( 2 )/Getthreadinfo( 11 ) only works when running on a server
'Typename( me ) gives the classname of the initated class - even if the error occurced in another level
Dim session As New NotesSession
Dim module As String
If session.IsOnServer Then module = ", module: " & Getthreadinfo( 11 )
Dim object As String
Select Case Typename( obj )
Case "STRING": object = obj
Case "NOTESAGENT": object = "agent: " & obj.name
Case Else
object = "class: " & Typename( obj )
End Select
If object <> "" Then object = ", " & object
getErrorInfo = Error & " " & Chr( 10 ) & Getthreadinfo( 10 ) & ", line: " & Erl & object & module
End Function
Now include error handling like shown below in ALL subs/functions/methods - and you will have a nice StackTrace :-)
Function foo()
On Error Goto EH
'<Your code here>
EH:
Error Err, getErrorInfo( Me )
End Function
Sub foo()
On Error Goto EH
'<Your code here>
EH:
Error Err, getErrorInfo( "" )
End Sub
Sub Initialize()
On Error Goto EH
Dim session As New NotesSession
'<Your code here>
EH:
Error Err, getErrorInfo( session.CurrentAgent )
End Sub
Addition to the showing the Error Message when error occurs, Error Number, Error Line Number, Function / Subroutine Name / Design Element Name in which the code exist would be useful.. Similar to Error Stack Trace in C# dotNet were complete details of Error is displayed. This will save lot of time in tracking the root cause of the Error messages
A stack including line numbers is what's needed. It addresses all types of errors, and there's not always actually a variable whose name you can get.
I's ask for try-catch blocks in Lotusscript
But line numbers (by default) on error messages would help a lot.
+1 for line number. And fix the issue, that line number reported by Errl varieble usualy does not match with source for complex scripts or LotusScript custom classes.
it would be great to add line number. Of course proper Error Handling is a MUST, but not all code line written by same professional people. it would help a lot to debug. May be some masking parameter, like EnableFriendlyObjectVariable= n, where N is sum of (0-disabled, 1-enabled variable , 2, enabled line number , 4- enabled function name. so summing all this,we might have needed result.