<div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">On Sat, May 31, 2014 at 1:03 AM, Scott Lystig Fritchie <span dir="ltr"><<a href="mailto:fritchie@snookles.com" target="_blank">fritchie@snookles.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">Garrett Smith <<a href="mailto:g@rre.tt">g@rre.tt</a>> wrote:<br>

<br>
gs> The trick here is to *never* make a mistake in the shell :)<br>
<br>
Or, prepend your commands at the shell CLI with "catch".  Something<br>
like:<br>
<br>
    Bad = "yo, I cause pain".<br>
    {ok, D} = dets:open_file(...).<br>
    catch dets:lookup(Bad, my_key).<br>
    catch dets:lookup(D, my_key).<br>
<br>
... would prevent using the bad DETS table name from a cascade that<br>
kills the shell CLI process than then closes the DETS table so that the<br>
second lookup() attempt also fails.</blockquote><div><br></div><div>Or use the big hammer, catch_exception(true):</div><div><br></div><div>1> catch_exception(true).</div><div>false</div><div>2> Bad = "yo, I cause pain".</div>
<div>"yo, I cause pain"</div><div>3> {ok, D} = dets:open_file(...).</div><div>{ok,...}</div><div>4> dets:lookup(Bad, my_key).</div><div><div>* exception error: bad argument</div><div>    in function  dets:lookup/2</div>
<div>       called as dets:lookup("yo, I cause pain",my_key)</div><div>5> dets:insert(D, {my_key, foo}).</div><div>ok</div><div>6> dets:lookup(D, my_key).</div><div>[{my_key,foo}]<br></div></div><div><br></div>
<div>catch_exception(true) is really handy for these kinds of cases, including working with sockets in the shell.</div><div><br></div><div>--steve</div></div></div></div>