Why this script can work?

Jm lists practicalperl at gmail.com
Fri Jan 19 01:51:44 EST 2007


Please help with this script:

class ShortInputException(Exception):
        '''A user-defined exception class.'''
        def __init__(self,length,atleast):
                Exception.__init__(self)
                self.length=length
                self.atleast=atleast

try:
        s=raw_input('Enter something --> ')
        if len(s)<3:
                raise ShortInputException(len(s),3)
        # Other work can continue as usual here
except EOFError:
        print '\nWhy did you do an EOF on me?'
except ShortInputException,x:
        print 'ShortInputException: The input was of length %d, was
expecting at least %d' %(x.length,x.atleast)
else:
        print 'No exception was raised.'


My questions are:

1) ShortInputException,x:   what's the 'x'? where is it coming?

2) The 'if' and 'else' are not in the same indent scope,why this can work?

Thanks in advance.



More information about the Python-list mailing list