<div dir="ltr"><div class="gmail_extra">As for me, we try to _never_  put such code:</div><div class="gmail_extra"><br></div><div class="gmail_extra">handle_info(_UnknownMsg, State) -></div><div class="gmail_extra">   {noreply, State}.</div><div class="gmail_extra"><br></div><div class="gmail_extra"><br></div><div class="gmail_extra">Such clause catches not only _UnknownMsg, but also  changed State after hot reload and may cost several hours of debugging.</div><div class="gmail_extra"><br></div><div class="gmail_extra">This is what we try to put in code:</div><div class="gmail_extra"><br></div><div class="gmail_extra">handle_info(_UnknownMsg, #state{} = State) -></div><div class="gmail_extra">  {noreply, State}.</div><div class="gmail_extra"><br></div><div class="gmail_extra"><br></div><div class="gmail_extra"><br></div><div class="gmail_extra">If record #state{} changes, all processes should not live with old state.</div><div class="gmail_extra"><br></div><div class="gmail_extra"><br></div><div class="gmail_extra">But this is of course a source of error.  More safe is to write:</div><div class="gmail_extra"><br></div><div class="gmail_extra">handle_info(UnknownMsg, #state{} = State) -></div><div class="gmail_extra">  {stop, {unknown, UnknownMsg}, State}.</div><div class="gmail_extra"><br></div><div class="gmail_extra"><br></div><div class="gmail_extra"><br></div><div class="gmail_extra">You should not ever receive unknown messages in your system. Once you start adding silent catch-all clause in your system, it will be hard</div><div class="gmail_extra">to stop and hard to find where error begins and ends.</div><div class="gmail_extra"><br></div></div>