[CentralOH] Changing Exception Raised

Mark Erbaugh mark at microenh.com
Wed Oct 20 22:47:13 CEST 2010


I didn't realize that other invalid inputs raised different exceptions. Thus, as you suggest, the naked except is probably safer.

Mark


On Oct 20, 2010, at 4:22 PM, Eric Floehr wrote:

> Mark,
> 
> I think that way is pretty elegant.  I don't know of a better way.  Since you don't care, you could just do a naked "except:" which will catch everything and re-emit as a ValueError.
> 
> I get bit by Decimal a lot because for purity it doesn't accept floats.  In that case, a TypeError is raised.
> 
> -Eric
> 
> 
> On Wed, Oct 20, 2010 at 3:55 PM, Mark Erbaugh <mark at microenh.com> wrote:
> I am developing some utility routines for parsing user input data. I would like all my routines to raise the same exception, i.e. ValueError, if the input data is invalid. In some cases, I can use routines already in the standard Python library. For example, decimal.Decimal() will take a string as input, so this is satisfactory to parse my input; however, decimal.Decimal() raises decimal.InvalidOperation if the string cannot be parsed.  I could write code to catch the InvalidOperation exception and raise a ValueError, but I wonder if there is a better/more elegant way?
> 
> Mark
> 
> import decimal
> 
> def str_to_decimal(x):
>     """
>     convert <str> do Decimal
>     
>     x - <str> input
>     returns Decimal
>     raises ValueError if x is not valid format for Decimal
>     """
>     try:
>         return decimal.Decimal(x)
>     except decimal.InvalidOperation:
>         raise ValueError
> 
> 
> _______________________________________________
> CentralOH mailing list
> CentralOH at python.org
> http://mail.python.org/mailman/listinfo/centraloh
> 
> 
> _______________________________________________
> CentralOH mailing list
> CentralOH at python.org
> http://mail.python.org/mailman/listinfo/centraloh

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/mailman/private/centraloh/attachments/20101020/809b9185/attachment.html>


More information about the CentralOH mailing list