<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<p> </p>
<p>I sent the message below to the wrong list... Here we go again.<br>
</p>
<p>---<br>
</p>
<blockquote type="cite">i quite like the idea of having a
canvas-scope for such an object. </blockquote>
Personally, I would rather prefer that if the error code would be
simply output by the same object that generated the error.
<p> </p>
<blockquote type="cite">On 6/14/21 10:37 AM, Peter P. wrote: <br>
> Yes, that's a good idea, but what if there are two identical
objects <br>
> on the same canvas? <br>
<br>
i think that would be *your* problem. <br>
if you want to catch error messages from two instances of the same
objectclass, just put them into separate canvases. <br>
simple as that. </blockquote>
I think Peter's concern is valid and it's actually another reason
why I wouldn't like such a design.
<p>---</p>
<p>Here's another idea, which I don't really love, but which I would
prefer over your proposed [canvaserror]:</p>
<p>Method calls which can generate an error send the error code to a
global [errno] object and the user can query the current error
state with a bang. This would be similar to 'errno' in C.</p>
<p>If the user queries the errno immediately after the method call,
Pd's determinism guarantees that the error really belongs to that
method call. We would have to reserve a special value (e.g. "0")
to mean "no error".</p>
<p>My main point is that errors should not be *sent* by global or
canvas-local objects, but that they should be *queried*. This way
the user doesn't have to deal with cross talk between different
objects.</p>
<p>Christof<br>
</p>
<div class="moz-cite-prefix">On 14.06.2021 13:29, IOhannes m
zmoelnig wrote:<br>
</div>
<blockquote type="cite"
cite="mid:b90c4fd3-48a8-1a04-15f9-5b00418791d7@iem.at">On 6/14/21
10:23 AM, Roman Haefeli wrote: <br>
<blockquote type="cite">On Mon, 2021-06-14 at 10:02 +0200, Peter
P. wrote: <br>
<br>
<blockquote type="cite"> I am wondering how one would <br>
parse these error messages if they came from one single object
outlet <br>
to <br>
tell where the error originated from? <br>
</blockquote>
<br>
I am wondering about that, too. Maybe a [pderror] would be
canvas-local <br>
and only report errors from objects belonging to the local
canvas? And <br>
it would prepend the name of the object to the message? <br>
</blockquote>
<br>
i quite like the idea of having a canvas-scope for such an object.
<br>
<br>
however, i think [pderror] is a bad name, as i would expect this
object to be usable for *generating* errors (ala [print]), rather
than outputting them. <br>
<br>
anyhow, i think the proposal maps nicely to what other languages
offer as "exception handling". <br>
from that pov, a good name would be [catch] (which would be *very*
good, if, alas! that weren't already occupied by the similarly
named but totally different [catch~]), or [except] (but i somehow
have the feeling that this would need some explicit *connection*
to the object that is bailing out). <br>
<br>
with iemgut's in mind, i would go for [canvaserror] (or, for a
more general case: [canvasconsole]). <br>
<br>
On 6/14/21 10:37 AM, Peter P. wrote: <br>
> Yes, that's a good idea, but what if there are two identical
objects <br>
> on the same canvas? <br>
<br>
i think that would be *your* problem. <br>
if you want to catch error messages from two instances of the same
objectclass, just put them into separate canvases. <br>
simple as that. <br>
<br>
e.g. cf the python code <br>
``` <br>
try: <br>
x=int("foo") <br>
y=int("bar") <br>
except: <br>
print("one of the two conversions failed") <br>
``` <br>
<br>
<br>
while thinking about the exception analogy, it might be
interesting to be able to re-throw an error message: <br>
if you don't want to hande the error in your canvas, you can just
pass it on to the parent canvas by sending it to an [error]
object. <br>
<br>
the same could apply to [print], which can be considered just as a
"low-priority error". <br>
<br>
fgmdsr <br>
IOhannes <br>
<br>
<br>
<fieldset class="mimeAttachmentHeader"></fieldset>
<pre class="moz-quote-pre" wrap="">_______________________________________________
<a class="moz-txt-link-abbreviated" href="mailto:Pd-list@lists.iem.at" moz-do-not-send="true">Pd-list@lists.iem.at</a> mailing list
UNSUBSCRIBE and account-management -> <a class="moz-txt-link-freetext" href="https://lists.puredata.info/listinfo/pd-list" moz-do-not-send="true">https://lists.puredata.info/listinfo/pd-list</a>
</pre>
</blockquote>
</body>
</html>