<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Is Handle Error only used for message processing errors? in Actor Framework Discussions</title>
    <link>https://ni.lithium.com/t5/Actor-Framework-Discussions/Is-Handle-Error-only-used-for-message-processing-errors/m-p/3373476#M190</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;The shutting down of the nested actors is new in LV 2014... and I guess I forgot to update the Context Help. I'll CAR that to fix for LV 2017 (2016 is already done).&lt;/P&gt;&lt;P&gt;(CAR 593676 filed)&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 24 Jun 2016 21:20:52 GMT</pubDate>
    <dc:creator>AristosQueue (NI)</dc:creator>
    <dc:date>2016-06-24T21:20:52Z</dc:date>
    <item>
      <title>Is Handle Error only used for message processing errors?</title>
      <link>https://ni.lithium.com/t5/Actor-Framework-Discussions/Is-Handle-Error-only-used-for-message-processing-errors/m-p/3373468#M182</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I did an override of Handle Error expecting I could let an error in my override of Actor Core propagate through to the parent. The parent Actor Core code suggests that an Error In will pass through to Handle Error (skipping any message processing), however my override is not being called and my Actor appears to be stopping.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Is my understanding of the purpose of Handle Error in "error"?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 27 Apr 2015 09:09:23 GMT</pubDate>
      <guid>https://ni.lithium.com/t5/Actor-Framework-Discussions/Is-Handle-Error-only-used-for-message-processing-errors/m-p/3373468#M182</guid>
      <dc:creator>BillMe</dc:creator>
      <dc:date>2015-04-27T09:09:23Z</dc:date>
    </item>
    <item>
      <title>Re: Is Handle Error only used for message processing errors?</title>
      <link>https://ni.lithium.com/t5/Actor-Framework-Discussions/Is-Handle-Error-only-used-for-message-processing-errors/m-p/3373469#M183</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Handle Error is called from the parent's actor core. Any code in your actor core is &lt;STRONG&gt;parallel &lt;/STRONG&gt;to the parent's actor core, as you probably forked the wire before the "call parent node" VI. Handle error handles errors in the parent thread, i.e. message handling; your actor core needs its own error handling.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Or in other words: Yes, Handle Error is used only for message processing errors. &lt;IMG src="http://forums.ni.com/legacyfs/online/emoticons/happy.png" /&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Danielle&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 27 Apr 2015 09:18:21 GMT</pubDate>
      <guid>https://ni.lithium.com/t5/Actor-Framework-Discussions/Is-Handle-Error-only-used-for-message-processing-errors/m-p/3373469#M183</guid>
      <dc:creator>dsavir</dc:creator>
      <dc:date>2015-04-27T09:18:21Z</dc:date>
    </item>
    <item>
      <title>Re: Is Handle Error only used for message processing errors?</title>
      <link>https://ni.lithium.com/t5/Actor-Framework-Discussions/Is-Handle-Error-only-used-for-message-processing-errors/m-p/3373470#M184</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;An alternative way of stating it... if you have errors in your parallel code and you want them to be processed by Handle Errors, you need to send a message to yourself that says "please process this error" -- and let the Do method just pass that error out. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The "Send Error Report.vi" in the palettes does exactly this. &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 27 Apr 2015 16:23:48 GMT</pubDate>
      <guid>https://ni.lithium.com/t5/Actor-Framework-Discussions/Is-Handle-Error-only-used-for-message-processing-errors/m-p/3373470#M184</guid>
      <dc:creator>AristosQueue (NI)</dc:creator>
      <dc:date>2015-04-27T16:23:48Z</dc:date>
    </item>
    <item>
      <title>Re: Is Handle Error only used for message processing errors?</title>
      <link>https://ni.lithium.com/t5/Actor-Framework-Discussions/Is-Handle-Error-only-used-for-message-processing-errors/m-p/3373471#M185</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;BLOCKQUOTE&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;AristosQueue wrote:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;An alternative way of stating it... if you have errors in your parallel code and you want them to be processed by Handle Errors, you need to send a message to yourself that says "please process this error" -- and let the Do method just pass that error out. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The "Send Error Report.vi" in the palettes does exactly this. &lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/BLOCKQUOTE&gt;&lt;P style="font-size: 13.3333330154419px;"&gt;&lt;SPAN style="font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #eef4f9;"&gt;Thank you, sir. I also found the &lt;/SPAN&gt;&lt;SPAN style="font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #eef4f9;"&gt;&lt;SPAN&gt;thread at &lt;/SPAN&gt;&lt;A class="jive-link-external-small" href="https://decibel.ni.com/content/message/89022#89022#89022" target="_blank"&gt;https://decibel.ni.com/content/message/89022#89022&lt;/A&gt;&lt;SPAN&gt;. I especially like your post #9 in that thread and will be looking at taking that philosophy into my own app. Time to scrap the old LabVIEW error handling paradigm and swap in the new.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="font-size: 13.3333330154419px;"&gt;&lt;SPAN style="font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #eef4f9;"&gt;I'd also like to thank you and your partner(s) in crime for coming up with this great design pattern. It's very satisfying when you get your application working and you know it's a lot more robust and scaleable than it would have been otherwise.&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 27 Apr 2015 19:03:03 GMT</pubDate>
      <guid>https://ni.lithium.com/t5/Actor-Framework-Discussions/Is-Handle-Error-only-used-for-message-processing-errors/m-p/3373471#M185</guid>
      <dc:creator>BillMe</dc:creator>
      <dc:date>2015-04-27T19:03:03Z</dc:date>
    </item>
    <item>
      <title>Re: Is Handle Error only used for message processing errors?</title>
      <link>https://ni.lithium.com/t5/Actor-Framework-Discussions/Is-Handle-Error-only-used-for-message-processing-errors/m-p/3373472#M186</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;You're welcome. &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 27 Apr 2015 21:34:23 GMT</pubDate>
      <guid>https://ni.lithium.com/t5/Actor-Framework-Discussions/Is-Handle-Error-only-used-for-message-processing-errors/m-p/3373472#M186</guid>
      <dc:creator>AristosQueue (NI)</dc:creator>
      <dc:date>2015-04-27T21:34:23Z</dc:date>
    </item>
    <item>
      <title>Re: Is Handle Error only used for message processing errors?</title>
      <link>https://ni.lithium.com/t5/Actor-Framework-Discussions/Is-Handle-Error-only-used-for-message-processing-errors/m-p/3373473#M187</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Although an old thread, I decided to post here since it's on the same subject.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I am struggling to understand how an Actor "quits" in the error case. I setup my project thusly:&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;A top level (root) actor with an override of actor core.&lt;/LI&gt;&lt;LI&gt;Before calling the parent actor core, send an Error Report to self.&lt;/LI&gt;&lt;LI&gt;In the override of Handle Error, a General Error handler I placed displays a dialog of the error. I hit continue.&lt;/LI&gt;&lt;LI&gt;The message handling loop in the parent actor core terminates and calls "Stop".&lt;/LI&gt;&lt;LI&gt;The override of Stop Core simply calls the parent method.&lt;/LI&gt;&lt;LI&gt;The parent Stop Core is supposed to send Stop messages to any nested actors.&lt;/LI&gt;&lt;LI&gt;The parent Actor Core then exits back to my override of Actor Core.&lt;/LI&gt;&lt;LI&gt;My Actor Core would assumedly then exit since it's at the end of the method.&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;What happens is my root actor exits normally if I DONT send an Error Report.&lt;/P&gt;&lt;P&gt;When I send an Error Report, my root actor does NOT exit (libraries are all locked). Trying this same scenario with nested actors and none of them get Stop messages. With no error going into parent Actor Core, any nested actors all stop normally.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Is the description of Stop Core correct that: "By default this method does nothing....." because the code itself shows sending a stop message to the array of nested actor enqueuers.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 24 Jun 2016 00:07:03 GMT</pubDate>
      <guid>https://ni.lithium.com/t5/Actor-Framework-Discussions/Is-Handle-Error-only-used-for-message-processing-errors/m-p/3373473#M187</guid>
      <dc:creator>BillMe</dc:creator>
      <dc:date>2016-06-24T00:07:03Z</dc:date>
    </item>
    <item>
      <title>Re: Is Handle Error only used for message processing errors?</title>
      <link>https://ni.lithium.com/t5/Actor-Framework-Discussions/Is-Handle-Error-only-used-for-message-processing-errors/m-p/3373474#M188</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Just a 'shot in the blue': Is your error handler configured to cancel the error?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 24 Jun 2016 06:45:33 GMT</pubDate>
      <guid>https://ni.lithium.com/t5/Actor-Framework-Discussions/Is-Handle-Error-only-used-for-message-processing-errors/m-p/3373474#M188</guid>
      <dc:creator>LuI</dc:creator>
      <dc:date>2016-06-24T06:45:33Z</dc:date>
    </item>
    <item>
      <title>Re: Is Handle Error only used for message processing errors?</title>
      <link>https://ni.lithium.com/t5/Actor-Framework-Discussions/Is-Handle-Error-only-used-for-message-processing-errors/m-p/3373475#M189</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I don't have to cancel the error. The default error handling makes it "go away". Sure, it is returned to my override of Actor Core in my root actor after the call to the parent Actor Core, but at that point the application is terminating anyway. For my project, application errors are always fatal and always result in the application doing an exit (after informing the user what happened).&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 24 Jun 2016 19:12:13 GMT</pubDate>
      <guid>https://ni.lithium.com/t5/Actor-Framework-Discussions/Is-Handle-Error-only-used-for-message-processing-errors/m-p/3373475#M189</guid>
      <dc:creator>BillMe</dc:creator>
      <dc:date>2016-06-24T19:12:13Z</dc:date>
    </item>
    <item>
      <title>Re: Is Handle Error only used for message processing errors?</title>
      <link>https://ni.lithium.com/t5/Actor-Framework-Discussions/Is-Handle-Error-only-used-for-message-processing-errors/m-p/3373476#M190</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;The shutting down of the nested actors is new in LV 2014... and I guess I forgot to update the Context Help. I'll CAR that to fix for LV 2017 (2016 is already done).&lt;/P&gt;&lt;P&gt;(CAR 593676 filed)&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 24 Jun 2016 21:20:52 GMT</pubDate>
      <guid>https://ni.lithium.com/t5/Actor-Framework-Discussions/Is-Handle-Error-only-used-for-message-processing-errors/m-p/3373476#M190</guid>
      <dc:creator>AristosQueue (NI)</dc:creator>
      <dc:date>2016-06-24T21:20:52Z</dc:date>
    </item>
    <item>
      <title>Re: Is Handle Error only used for message processing errors?</title>
      <link>https://ni.lithium.com/t5/Actor-Framework-Discussions/Is-Handle-Error-only-used-for-message-processing-errors/m-p/3373477#M191</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;If you pass an error directly into Actor:Actor Core.vi, you will not trip Handle Error at all, but it will still trip Stop.vi, which will unconditionally call Stop Core. There's no way around that behavior. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;gt; When I send an Error Report, my root actor does NOT exit (libraries are all locked).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I cannot explain that behavior. It works fine in all of my tests -- I send an error with Send Error Report.vi and all the actors stop. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If you use Send Error Report.vi... make sure that you're actually sending an error? I mean, if the value you wire in is "no error", then it would have the behavior you describe. I know that's almost insulting like asking "have you tried plugging it in?" but I'm at a loss to explain the behavior otherwise. &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 24 Jun 2016 21:36:03 GMT</pubDate>
      <guid>https://ni.lithium.com/t5/Actor-Framework-Discussions/Is-Handle-Error-only-used-for-message-processing-errors/m-p/3373477#M191</guid>
      <dc:creator>AristosQueue (NI)</dc:creator>
      <dc:date>2016-06-24T21:36:03Z</dc:date>
    </item>
    <item>
      <title>Re: Is Handle Error only used for message processing errors?</title>
      <link>https://ni.lithium.com/t5/Actor-Framework-Discussions/Is-Handle-Error-only-used-for-message-processing-errors/m-p/3373478#M192</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I'm trying to decipher from your problem description what might be going on.&amp;nbsp; Hard to say without seeing 1) Your Handle Error.vi override in the root actor (that is not stopping), and 2) the Actor Core of this actor.&amp;nbsp; If you could post these we could probably figure it out pretty quickly.&amp;nbsp; With that said, I would say a couple things based on what you are describing.&amp;nbsp; First, your Handle Error.vi override decides what happen when a message handler method of the actor produces an error.&amp;nbsp; The framework (Actor.class:Actor core.vi) calls Handle Error in the message handler loop when VIs in your actor return errors.&amp;nbsp; By "deciding", that means what do you output to the "stop actor?" output of your Handle Error.vi override?&amp;nbsp; And also did you call the parent Handle Error.vi or not?&amp;nbsp; And if not, are you handling the "native stop" error code 43 (you need to replace the parent's functionality if you don't call it yourself).&amp;nbsp; If you output True for "stop actor?", the message loop will shutdown.&amp;nbsp; If you don't override Handle Error, then the parent VI will always output True and any error will shutdown the actor.&amp;nbsp; But you are right, "shutting down" the parent Actor Core doesn't necessarily shutdown your actor- it just completes the parent's Actor Core node that was called in your Actor Core override.&amp;nbsp; If your Actor Core doesn't itself then complete, this could be the problem (do you have an Event Loop running, etc?).&lt;/P&gt;&lt;P&gt;Another thing (and maybe a completely separate issue) is that you said the nested actors don't shut down.&amp;nbsp; IF the parent Actor Core.vi stops, then the nested actors WILL shutdown (or at least they will receive Stop messages) regardless of what is going on in your root actor.&amp;nbsp; That is, if you launched the nested actors properly and stored their queues in the root actor wire before launching the root parent Actor Core.vi (another reason to want to see what you did in your Actor Core).&amp;nbsp; It sounds like you could set a few breakpoints (in your Handler Error.vi, your Actor Core.vi) and step through during your various error scenarios to figure out who/what is at fault.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 24 Jun 2016 22:22:10 GMT</pubDate>
      <guid>https://ni.lithium.com/t5/Actor-Framework-Discussions/Is-Handle-Error-only-used-for-message-processing-errors/m-p/3373478#M192</guid>
      <dc:creator>EricBehrs</dc:creator>
      <dc:date>2016-06-24T22:22:10Z</dc:date>
    </item>
    <item>
      <title>Re: Is Handle Error only used for message processing errors?</title>
      <link>https://ni.lithium.com/t5/Actor-Framework-Discussions/Is-Handle-Error-only-used-for-message-processing-errors/m-p/3373479#M193</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Well, this is not the first time I've had issues only to try the next day and things work as expected. I'm not sure what's going on. I do have the odd LabVIEW crash (and I mean with no warning or error) when editing VIs so perhaps this is just a symptom of something else going on. My lab computer seems to run fine, but I do most of my development on my company asset where I'm apparently having issues.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Sorry for the bother.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 25 Jun 2016 09:22:58 GMT</pubDate>
      <guid>https://ni.lithium.com/t5/Actor-Framework-Discussions/Is-Handle-Error-only-used-for-message-processing-errors/m-p/3373479#M193</guid>
      <dc:creator>BillMe</dc:creator>
      <dc:date>2016-06-25T09:22:58Z</dc:date>
    </item>
    <item>
      <title>Re: Is Handle Error only used for message processing errors?</title>
      <link>https://ni.lithium.com/t5/Actor-Framework-Discussions/Is-Handle-Error-only-used-for-message-processing-errors/m-p/3373480#M194</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;No need to apologize, especially if there's a LV crash. There are only two nodes that can legitimately cause LV to crash: Type Cast and Call Library Node. Those two allow users to do abusive things to LV's memory system that may bring down LabVIEW in ways we cannot detect. Anything else is a mistake on our part. If the crash happens regularly, please contact an AE so maybe we can fix it for you. The AEs will do their best to characterize the crash and escalate it to R&amp;amp;D as necessary. At the very least, please do hit Send when asked to send info about the crash to NI. Every crash log, even repeated from the same user, can help us track down the hard-to-reproduce bugs. We've fixed several hundred of those over the last 5 years thanks to users sending in the crash logs. &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 27 Jun 2016 13:51:56 GMT</pubDate>
      <guid>https://ni.lithium.com/t5/Actor-Framework-Discussions/Is-Handle-Error-only-used-for-message-processing-errors/m-p/3373480#M194</guid>
      <dc:creator>AristosQueue (NI)</dc:creator>
      <dc:date>2016-06-27T13:51:56Z</dc:date>
    </item>
  </channel>
</rss>

