On Thu, 02 Dec 2010 10:19:35 -0500, Steve Holden wrote: > On 12/2/2010 9:13 AM, Harishankar wrote: >> On Thu, 02 Dec 2010 22:19:25 +1100, Ben Finney wrote: >> >>> More details of the problem you're trying to solve would help with >>> giving specific advice. >> >> I'm writing functions with multiple points of failure exits. I use >> return False as a way to flag the error condition rather than raising >> exceptions. But under certain circumstances, the function can also >> return empty lists which equate to false when using the condition like: >> >> # myfunction () can return a list of tuples, but can also return an >> empty # list under certain conditions since it's query a database and >> the result # can be empty also >> >> result = myfunction (vars) >> >> if not result: >> # error condition >> >> Now above I first realized that the function can also return an empty >> list under some conditions and so changed it to >> >> if result == False: >> # error condition >> >> >> But now I realize that it's better to use "is" >> >> if result is False: >> # error condition >> >> That is how my problem arose. >> > Did you think about using exceptions to handle exceptional conditions? > If you are new to Python it may not be the obvious soltuion, but it can > greatly simplify program logic. > > regards > Steve
I am not new to Python but I am not a fan of exceptions either. I prefer to avoid writing my own exceptions because it feels too heavy and clunky for simple error checking. Most times I find simple error checking ample for my purposes. Of course, I use the built-in exception objects when I have no choice, but I hate try blocks. They add clunkiness to code and besides exception objects seem to be fairly heavy-duty for simple error conditions where a true/false flag would probably suffice. I am also wary of using larger catch-all try blocks or try blocks with multiple exception exits (which seem to make tracking subtle bugs harder). I prefer the philosophy of dealing with errors immediately as they arise, rather than delegate them to exception mechanism. Of course, I could wrap single statements in try blocks, but that makes the code even messier without any significant benefits. -- Harishankar (http://harishankar.org http://lawstudentscommunity.com) -- http://mail.python.org/mailman/listinfo/python-list