I think that's very well-put.

―
Mike Keesey

> -----Original Message-----
> From: [EMAIL PROTECTED] [mailto:flashcoders-
> [EMAIL PROTECTED] On Behalf Of David Bellerive
> Sent: Thursday, September 28, 2006 8:22 PM
> To: flashcoders@chattyfig.figleaf.com
> Subject: [Flashcoders] Implicit setters and exceptions in AS2.0
> 
> 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
> _______________________________________________
> Flashcoders@chattyfig.figleaf.com
> 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

_______________________________________________
Flashcoders@chattyfig.figleaf.com
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