<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">2015-02-27 15:17 GMT+01:00 José Valim <span dir="ltr"><<a href="mailto:jose.valim@plataformatec.com.br" target="_blank">jose.valim@plataformatec.com.br</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Since maps are still marked are experimental, I would love if we take the opportunity to improve the errors coming from map operations.<div><br></div><div>For example, a bad update just fails with badarg, without giving further hints of what went wrong:</div><div><br></div><div><div><font face="monospace, monospace">1> (foo)#{foo := 1}.</font></div><div><font face="monospace, monospace">** exception error: bad argument: foo</font></div><div><br></div></div><div>Or when the key does not exist:</div><div><br></div><div><div><font face="monospace, monospace">1> (#{})#{foo := 1}.</font></div><div><font face="monospace, monospace">** exception error: bad argument</font></div><div><font face="monospace, monospace">     in function  maps:update/3</font></div><div><div><div><br></div><div>Although the shell helps a bit with formatting it, it is hard to decipher in logs and we frequently have reports of the error message not being clear to developers.</div><div><br></div><div>I would love if we could, at least for the syntax based operations, introduce two errors:</div><div><br></div><div>1. {badmap, Term} - raised when a map was expected but got something else (this would replace the first error and it is an improvement over the error records used to raise)</div><div><br></div><div>2. {badkey, Key, Map} - raised when we expected a Map to have Key but it does not. Useful for the := syntax and it could also be used if we ever add an access operation to maps</div><div><br></div><div>If we segregate the errors as proposed, we will have plenty of opportunity to improve the reports in shell and in error loggers.</div><div><br></div><div>Thoughts?</div></div></div></div></div></blockquote><div><br></div><div><br></div><div>My relocation is that we already decided on this format? Pretty much precisely as you described it. It could just be long term deja vu on my part though.</div><div><br></div><div>Is it your way of saying, "do it already" ? =D </div><div><br></div><div>But yeah, +1</div><div><br></div><div>// Björn-Egil</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div><div><span class="HOEnZb"><font color="#888888"><div><br></div><div><span style="font-size:13px"><div><span style="font-family:arial,sans-serif;font-size:13px;border-collapse:collapse"><b>José Valim</b></span></div><div><span style="font-family:arial,sans-serif;font-size:13px;border-collapse:collapse"><div><span style="font-family:verdana,sans-serif;font-size:x-small"><a href="http://www.plataformatec.com.br/" style="color:rgb(42,93,176)" target="_blank">www.plataformatec.com.br</a></span></div><div><span style="font-family:verdana,sans-serif;font-size:x-small">Skype: jv.ptec</span></div><div><span style="font-family:verdana,sans-serif;font-size:x-small">Founder and Lead Developer</span></div></span></div></span></div></font></span></div></div>
</div></div>
<br>_______________________________________________<br>
erlang-questions mailing list<br>
<a href="mailto:erlang-questions@erlang.org">erlang-questions@erlang.org</a><br>
<a href="http://erlang.org/mailman/listinfo/erlang-questions" target="_blank">http://erlang.org/mailman/listinfo/erlang-questions</a><br>
<br></blockquote></div><br></div></div>