Output the method name as a string at runtime

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

Output the method name as a string at runtime

ASAM
Hello,
I would like to output the method name as a string in case of an error.

what I've already done is this: (with thisContext selector asString)

pduDestruct
        | result |
        result := call ffiPDUDestruct.
        result = T_PDU_ERROR PDU_STATUS_NOERROR
ifFalse: [ Error signal:'Method: ' , thisContext selector asString , '  with
result: ', result item asString ]


but now I use it more often. And wanted to rebuild it like that.

initialize
        errorBlock := [ :tPduError | Error signal:'Method: ' , thisContext selector
asString , '  with result: ', tPduError item asString ].


pduDestruct
        | result |
        result := call ffiPDUDestruct.
        result = T_PDU_ERROR PDU_STATUS_NOERROR ifFalse: [ errorBlock value: result
]


but that doesn't work because "this Context selector toString" now returns
'initialize'.

Can someone give me a hint how to solve this?
Is "thisContext selector asString" the only way to get the name of the
method at runtime?

Thanks in advance.















--
Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html