1) I think it's a GREAT idea to explain options for avoiding an exception in the exception.

2)
I agree that there are 2 paradigms, the current (work as best as you can, even if it is wrong) and what we are looking at as the new (fail loudly if it isn't right).

and I understand the desire for backwards compatibility. and agree that there should be a way to achieve it.
however, I would like to look this statement I bit closer.

I've personally got hundreds of templates in production and support users
with hundreds more.  Say 5% of those templates have this error.  (It's not
hard to make -- note that the Velocity test suite for Anakia contains this
error).  All of a sudden I have tens of templates, scattered all over the
place that suddenly cause errors

In my mind this is a lot of proof the log files don't really work.
because if they did, the error's would go away. and without knowing how the macro's work, it's hard to tell if the breaking is important, but I tend to put parameters in a function because they are to be used, and therefore would assume it would be important at least in some situations.

-------------------------------------------------------------------------------------

My point is this. As the Velocity community continues to grow, I would like to avoid these things. I would like to make it easier to configure Velocity, easier to make it work, easier to debug, so future code does not suffer the same as the past. to this end, I once again push for the default settings (because new users don't usually change those for a while) to throw errors when you do something wrong. Error's that tell you
1) what went wrong
2) where it went wrong
3) what you tried.
4) what was possible ?
5) suggestions on how to fix it?

for example.
(not sure if this is still true in the latest version, as my working version is a couple of versions behind)
if a template is not found in a #parse("template2") call, it is ignored.
so
123#parse("unknownTemplate.vm")567
will output -> 123567

better would be it throws and error ("unknownTemplate").

better still
unknow template line 1, col 4 in yourTemplate.vm

better still
unknow template 'unknownTemplate.vm'
line 1, col 4 in yourTemplate.vm

better still
couldn't find template 'unknownTemplate.vm'
at  line 1, col 4 in yourTemplate.vm
from resource loaders:
file resource load [path = c:\code]
file resource load [path = c:\templatesss]


best
couldn't find template 'unknownTemplate.vm'
at  line 1, col 4 in yourTemplate.vm
from resource loaders:
file resource load [path = c:\code]
file resource load [path = c:\templatesss]

To ignore this error set the parameter 'velocity.errors.ignoreUnknownTemplate' to false


-------------------------------------------------------------------------------------
These type of errors really help to make debugging easy (for example, i would see here that i misspelled templates)
which makes the life a bit easier for us experienced users.
but can make a world of difference to a newbie, and that difference can be the difference between continuing with the product, or just being frustrated.

also the parameter being written lines away from the checking of the parameter helps to ensure that it is correct (as opposed to documents away in the manual or code example)

so anyways, that concludes my rant :-)

Llewellyn.










---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to