defining, raising and catching exceptions

Chris Hare chare at labr.net
Thu Aug 5 19:21:27 EDT 2010


okay - but why does the response come back like

No such file or directory
def b
('n', 'e', 't', ' ', 'a', 'l', 'r', 'e', 'a', 'd', 'y', ' ', 'r', 'u', 'n', 'n', 'i', 'n', 'g')


On Aug 5, 2010, at 5:49 PM, Benjamin Kaplan wrote:

> 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
>> 
> -- 
> http://mail.python.org/mailman/listinfo/python-list




More information about the Python-list mailing list