Last week, I sent a message to the FlashCoders list
asking if validating the values passed to setter
methods (in custom classes) was a good practice.

After reading on how exceptions work in Java, here's
the solution I've decided to use in my setter methods
in AS2.0.

If the client (the programmer using my custom class)
breaks his part of the contract by supplying my setter
method with an illegal value, I display an alert in
the output window using the trace statement and abort
the implicit setter method without assigning the
illegal value that was passed to the method.

On the other hand, if the implicit setter method is
the one breaking the contract (it can't complete it's
task for whatever reason), I throw and exception.

I've decided to use this method because AS2.0 doesn't
support checked and unchecked exceptions like Java. In
AS2.0, all exceptions are unchecked, meaning the
client isn't forced to catch any exceptions. But when
an exception goes uncaught, the function call stack
completely aborts.

So, using this method, when the client is responsible
for breaking the contract (like passing an illegal
value to the setter method), he is alerted via the
output window in the Flash IDE. This way, he isn't
forced to respond to "low-risk" errors and the
function call stack won't abort under any
circumstance. However, the client cannot react to this
error at runtime.

However, when the setter method is the one responsible
for breaking the contract, an exception is thrown and
the client has to catch it to prevent the function
call stack from aborting completely. If the client
doesn't catch the exception, the function call stack
is emptied and the program probably won't work as
expected. However, if the exception is caught (and it
should), the client has the possibilty to react to it
at runtime.

In conclusion, when the error comes from the client
only alert the client. When the error comes from the
method, throw an exception.

Any thoughts or comments on this ?

__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 
_______________________________________________
[email protected]
To change your subscription options or search the archive:
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders

Brought to you by Fig Leaf Software
Premier Authorized Adobe Consulting and Training
http://www.figleaf.com
http://training.figleaf.com

Reply via email to