Posted By: Anonymous
I have a function that can return one of three things:
- success (
- failure (
- error reading/parsing stream (
My question is, if I’m not supposed to test against
False, how should I see what the result is. Below is how I’m currently doing it:
result = simulate(open("myfile")) if result == None: print "error parsing stream" elif result == True: # shouldn't do this print "result pass" else: print "result fail"
is it really as simple as removing the
== True part or should I add a tri-bool data-type. I do not want the
simulate function to throw an exception as all I want the outer program to do with an error is log it and continue.
Don’t fear the Exception! Having your program just log and continue is as easy as:
try: result = simulate(open("myfile")) except SimulationException as sim_exc: print "error parsing stream", sim_exc else: if result: print "result pass" else: print "result fail" # execution continues from here, regardless of exception or not
And now you can have a much richer type of notification from the simulate method as to what exactly went wrong, in case you find error/no-error not to be informative enough.