So, I’m new to programming and my question is:
Is it considered a bad practice to use an exception handler to override error-message-behaviour of default methods of a programming language with custom functionality? I mean, is it ethically correct to use something like this (Python):
def index(p, val):
try:
return p.index(val)
except ValueError:
return -1
Maybe I wasn’t precise enough. What I meant is: is it a normal or not-recommended practice to consider thrown exceptions (well, I guess it’s not applicable everywhere) as legit and valid case-statements?
Like, the idea of the example given above is not to make a custom error message, but to suppress possible errors happening without warning neither users nor other program modules, that something is going wrong.
I think that doing something like this is OK as long as you use function names which make it clear that the user isn’t using a built-in. If the user thinks they’re using a builtin and all of a sudden
indexreturns -1, imagine the bugs that could happen … They do:and all of a sudden they get the last element in the list (which isn’t
foo).As a very important rule though, Only handle exceptions that you know what to do with. Your example above does this nicely. Kudos.