Welcome to the #dominoforever Product Ideas Lab! 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 jointly by the IBM & 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.


Fix "Object Variable Not Set"

Change the "Object Variable Not Set" error message to "Object Variable Not Set - <NameOfVariable>".  Would save so much client,developer and admin time.

  • Avatar32.5fb70cce7410889e661286fd7f1897de Guest
  • Jul 15 2018
  • Investigating
  • Attach files
  • Avatar40.8f183f721a2c86cd98fddbbe6dc46ec9
    Guest commented
    16 Jul 16:27

    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. 

  • Avatar40.8f183f721a2c86cd98fddbbe6dc46ec9
    Guest commented
    17 Jul 09:03

    +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.

  • Avatar40.8f183f721a2c86cd98fddbbe6dc46ec9
    Guest commented
    18 Jul 09:31

    I's ask for try-catch blocks in Lotusscript

     

    But line numbers (by default) on error messages would help a lot.

  • Avatar40.8f183f721a2c86cd98fddbbe6dc46ec9
    Guest commented
    18 Jul 18:25

    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.

  • Avatar40.8f183f721a2c86cd98fddbbe6dc46ec9
    Guest commented
    27 Aug 10:13

    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

  • Avatar40.8f183f721a2c86cd98fddbbe6dc46ec9
    Guest commented
    02 Sep 11:52

    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.
     
    DIY Stacktrace
    Create a public function:
    Public Function getErrorInfo( obj As Variant )
     '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 :-)
     
     
    From a method in a class
     Function foo()
      On Error Goto EH
       '<Your code here>
     EH:
      Error Err, getErrorInfo( Me )
     End Function
     
    From a module level sub/function
     Sub foo()
      On Error Goto EH
       '<Your code here>
     EH:
      Error Err, getErrorInfo( "" )
     End Sub
     
    From an agent
     Sub Initialize()
      On Error Goto EH
      Dim session As New NotesSession
       '<Your code here>
     EH:
      Error Err, getErrorInfo( session.CurrentAgent )
     End Sub