Thank you for your detailed suggestion. I will look into it.
But I will not change an error handling routine without good understanding and testing. Right now, I only want to add and store the alias() when an error occurred.
>In the long run you are painting yourself into a corner with an approach based on adding to or modifying current parameter list.
>
>Speaking with no knowledge on Dougs class, I would bet small amounts that ANY subclass approach is better, from simply overwriting
>function ini()
>local llOk
>llOk = dodefault()
>this.Addobject("oDmitry", "empty")
>return m.llOk
>
>function ErrorHandler(tnError, tcSys16, tnLineno)
>= AddProperty(this.oDmitry, "cAlias", Alias())
>return dodefault(m.tnError, m.tcSys16, m.tnLineno)
>over a hook based approach
>function ErrorHandler(tnError, tcSys16, tnLineno)
>local luRet
>this.Hook_ErrorHandler_Before(m.tnError, m.tcSys16, m.tnLineno)
>luRet = dodefault(m.tnError, m.tcSys16, m.tnLineno)
>this.Hook_ErrorHandler_Done(m.tnError, m.tcSys16, m.tnLineno)
>return m.luRet
>
>to a construct where you set specific objects for each hook type or before/done
>function ErrorHandler(tnError, tcSys16, tnLineno)
>local luRet
>this.oHookBefore.ErrorHandler(m.tnError, m.tcSys16, m.tnLineno)
>luRet = dodefault(m.tnError, m.tcSys16, m.tnLineno)
>this.oHookDone.ErrorHandler(m.tnError, m.tcSys16, m.tnLineno)
>return m.luRet
>in your specific .Init due to another settings object as factory specifying each class, allowing you more freedom in subclassing/specialising. Yes, last approach IS overenginered on purpose to give you an idea how far you might proceed for problems having much wider application range...
>>In my application I use the error handler class developed by Doug Hennig many years ago. It is good and it serves/served the purpose. Over the years I add ed some code but for the most part it is the same.
>>
>>I want to add the logging of the ALIAS() at the time of the error. Right now the error class does not do it. So, here is what I see (and in initial test works) can be done:
>>
>>The error handler is instantiated with the following code:
>>
>>lcError = lcErrorObj + '.ErrorHandler(error(), sys(16), lineno())'
>>
>>
>>So, I added the alias() to the above, as follows:
>>
>>lcError = lcErrorObj + '.ErrorHandler(error(), sys(16), lineno(), ALIAS())'
>>
>>
>>Therefore, now the method ErrorHandler gets 4 parameters, the last of which is the alias()
>>
>>Anyone sees a potential problem with the above?
>>
>>TIA
"The creative process is nothing but a series of crises." Isaac Bashevis Singer
"My experience is that as soon as people are old enough to know better, they don't know anything at all." Oscar Wilde
"If a nation values anything more than freedom, it will lose its freedom; and the irony of it is that if it is comfort or money that it values more, it will lose that too." W.Somerset Maugham