<div dir="ltr">ah ok! I understand now.<div>I'll take a look, thanks!</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Jun 28, 2023 at 5:44 PM Mariano Montone <<a href="mailto:marianomontone@gmail.com">marianomontone@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">El 28/6/23 a las 11:43, Hernán Wilkinson escribió:<br>
> Hi Mariano,<br>
>  interesting! Lisp and Smalltalk are the only programming languages I <br>
> know that do not destroy the stack when an exception is signaled and <br>
> therefore allows you to do these kinds of things, go back in the stack <br>
> and see the context where the exception was signaled, etc etc.<br>
Yes! And I think that's underestimated. Also perfect for debugging <br>
(signal the exception but keep the stack please, so I can inspect it :) <br>
). I wish other programming environments did the same.<br>
>  Regarding this idea, it looks to me that the responsibility of what <br>
> to do with an exception should be in who is handling it, not who is <br>
> signaling it. I mean, the same exception could be handled differently <br>
> depending on the context... What do you think about it? Because to me <br>
> this solution could generate more coupling that necessary.<br>
The responsibility of what to do *is* of the calling function, not the <br>
signaler, and do varies depending on the context. It works like this: <br>
the moment you signal the exception, you offer the calling function <br>
several ways it may want to resume . The calling function can choose to <br>
resume via one of those, but that is not forced. The calling function is <br>
free to handle the exception however it wants. It is free of ignoring <br>
the resuming options the exception is offering, it may choose not to <br>
resume in any way and do whatever. But, those resuming options are there <br>
for a reason, as they have direct access to the context in which the <br>
exception occurs and offer sensible ways a caller might want to resume <br>
depending on the kind of exception being signaled.<br>
<br>
If you load the code, I like the example that runs several tasks <br>
(example4). When running a task, the sensible resuming options a caller <br>
may like to take could be to retry, to skip, or to skip all the rest. <br>
Again, this is not forced and caller can react in other ways.<br>
<br>
It is always up to the calling function to decide what to do, the <br>
signaler only offers possible sensible ways to resume.<br>
<br>
And finally, something I love is that if the exception goes unhandled, <br>
the user is given the possibility to choose one of those resumptions, <br>
interactively, from a gui menu.<br>
<br>
<br>
     Mariano<br>
<br>
</blockquote></div><br clear="all"><div><br></div><span class="gmail_signature_prefix">-- </span><br><div dir="ltr" class="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div style="font-size:small"><div dir="ltr"><div dir="ltr"><div style="font-size:12.8px"><span style="font-family:tahoma,sans-serif;font-size:xx-small;border-collapse:collapse"><strong><span style="font-size:8pt"><span style="font-size:small"><font size="2"><span style="font-weight:normal"><span style="font-weight:bold">Hernán Wilkinson</span><br>Agile Software Development, Teaching & Coaching</span></font></span></span></strong></span></div><div style="font-size:12.8px"><span style="font-family:tahoma,sans-serif;font-size:xx-small;border-collapse:collapse"><strong><span style="font-size:8pt"><span style="font-size:small"><font size="2"><span style="font-weight:normal">Phone: +54-011</span></font></span></span></strong></span><font face="tahoma, sans-serif" size="2">-4893-2057</font></div><div style="font-size:12.8px"><strong style="font-family:tahoma,sans-serif;font-size:xx-small"><span style="font-size:8pt"><span style="font-size:small"><font size="2"><span style="font-weight:normal">Twitter: @HernanWilkinson</span></font></span></span></strong></div><div style="font-size:12.8px"><span style="font-family:tahoma,sans-serif;font-size:xx-small;border-collapse:collapse"><strong><span style="font-size:8pt"><span style="font-size:small"><font size="2"><span style="font-weight:normal">site: <a href="http://www.10pines.com/" style="color:rgb(17,65,112)" target="_blank">http://www.10Pines.com</a></span></font></span></span></strong></span></div><div style="font-size:12.8px"><font face="tahoma, sans-serif"><span style="border-collapse:collapse">Address: Alem 896</span></font>, Floor 6, Buenos Aires, Argentina</div></div></div></div></div></div></div></div>