<div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">On Thu, Jul 3, 2014 at 11:35 AM, Pietro <span dir="ltr"><<a href="mailto:peter.zamb@gmail.com" target="_blank">peter.zamb@gmail.com</a>></span> wrote:<br>


<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Dear devs,<br>
<br>
What do you think if we unify all our custom exceptions in one common file?<br>
Just to avoid code repetitions and help consistency.<br>
<br>
Looking into the code I found the following custom exceptions:<br>
<br>
{{{<br>
$ grep --color=auto<br>
--exclude-dir={.svn,.git,.OBJ,locale,dist.x86_64-unknown-linux-gnu}<br>
-IrnE "class\s\w+\(Exception\)\:"<br>
lib/python/pygrass/messages/__init__.py:21:class FatalError(Exception):<br>
lib/python/pygrass/errors.py:11:class AbstractError(Exception):<br>
lib/python/pygrass/errors.py:19:class ParameterError(Exception):<br>
lib/python/pygrass/errors.py:23:class FlagError(Exception):<br>
lib/python/pydispatch/errors.py:4:class DispatcherError(Exception):<br>
lib/python/temporal/abstract_dataset.py:26:class ImplementationError(Exception):<br>
lib/python/temporal/temporal_algebra.py:655:class FatalError(Exception):<br>
lib/python/ctypes/ctypesgencore/parser/lex.py:46:class LexError(Exception):<br>
lib/python/ctypes/ctypesgencore/parser/yacc.py:87:class<br>
YaccError(Exception):   pass<br>
lib/python/script/core.py:50:class ScriptError(Exception):<br>
gui/wxpython/core/gcmd.py:156:class GException(Exception):<br>
gui/wxpython/wxgui.py:86:class Usage(Exception):<br>
}}}<br>
<br></blockquote><div><br></div><div>I think that generally they should be in one file/module. These should inherit from a custom GrassError (if they are errors) but his is not necessary.<br><br>However, some of them should stay where they are. Namely the ones which are used to control more-standard flow of the program (which is the case of Usage from wxgui.py) and the ones which are specific to some 3rd party code (such as DispatcherError from pydispatch). In other words, if the exceptions are not reusable (because they are highly specialized) or it is not clear what are the use cases of the exaction (i.e. the same exception would be used at different occasions without common pattern), they should stay where they are.<br>


<br></div><div>On the other hand, I can see that Usage, or differently named exception with same meaning, could be used in general.<br></div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">


Perhaps we could create a new file in grass.script.errors or<br>
grass.script.exceptions, or outside script so something like<br>
grass.errors or grass.exceptions.<br>
<br></blockquote><div>It seems that error is more used for exceptions which are errors. Python has package/module `exceptions`, some packages have module errors. Exceptions sounds more general.<br><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">



Do you think it is a bad idea?<br>
<br>
Best regards<br>
<span><font color="#888888"><br>
Pietro<br>
_______________________________________________<br>
grass-dev mailing list<br>
<a href="mailto:grass-dev@lists.osgeo.org" target="_blank">grass-dev@lists.osgeo.org</a><br>
<a href="http://lists.osgeo.org/mailman/listinfo/grass-dev" target="_blank">http://lists.osgeo.org/mailman/listinfo/grass-dev</a><br>
</font></span></blockquote></div><br></div></div>