Fwd: [ditrack commit] r839 - in src/trunk/DITrack: . Command
Vlad Skvortsov
vss at 73rus.com
Mon Nov 20 09:57:02 PST 2006
Oleg Sharov wrote:
> + if e in db.cfg.filters:
> + f = db.cfg.filters[e]
> + else:
> + try:
> + f = DITrack.DB.Filter(e)
> + except:
> + DITrack.Util.common.err("ERROR: '%s' is not
> predefined filter or it contains syntax error" \
> + % e)
> +
> filters.append(f)
>
> for id, issue in db.issues():
>
> After my changes we have double error, and loss overt error about
> undefined filter.
> As a user of system, I consider it's bad.But, as a programmer, I don't
> know other solution
>
>
> Vlad, what's your opinion?
I think it should look somewhat like this:
try:
f = DITrack.DB.Filter(e)
except FilterIsPredefinedError:
# This looks like a predefined filter name.
if e in db.cfg.filters:
f = db.cfg.filters[e]
else:
error("Filter '%s' is not defined" % e)
except FilterSyntaxError:
# Invalid filter syntax.
error("Can't parse filter expression '%s'" % e)
The DITrack.DB.Filter.__init__() thus should be smart enough to raise
two different exceptions. Makes sense?
--
Vlad Skvortsov, vss at 73rus.com, http://vss.73rus.com
More information about the Dev
mailing list