defining, raising and catching exceptions
Benjamin Kaplan
benjamin.kaplan at case.edu
Thu Aug 5 18:49:38 EDT 2010
What makes you think it has to do with user-defined exceptions?
>>> try :
... raise Exception("hello")
... except Exception as (errno, errText) :
... print "whatever"
...
Traceback (most recent call last):
ValueError: need more than 1 values to unpack
An Exception is an object, not a tuple of number and text.
Raise an instance of the exception, not the class:
raise NetActiveError("net already running")
And then catch the exception object
except NetActiveError as err:
print err.args
On Thu, Aug 5, 2010 at 3:41 PM, Chris Hare <chare at labr.net> wrote:
>
> I have a block of test code, where I am trying to raise and catch my own user defined exception
>
> class NetActiveError(RuntimeError):
> def __init__(self,error):
> self.args = error
>
> def a():
> try:
> fh = open("me.txt", "r")
> except Exception as (errno, errText):
> print errText
> try:
> b()
> except NetActiveError as (errono, errText):
> print errno, errText
>
> def b():
> print "def b"
> raise NetActiveError,"net already running"
>
>
> a()
>
>
> When I run it though, I get the following error:
>
> chare$ python z
> No such file or directory
> def b
> Traceback (most recent call last):
> File "z", line 20, in <module>
> a()
> File "z", line 12, in a
> except NetActiveError as (errono, errText):
> ValueError: too many values to unpack
>
>
> What am I doing wrong here?
>
>
> --
> http://mail.python.org/mailman/listinfo/python-list
>
More information about the Python-list
mailing list