[Tutor] question about try & except

nephish nephish at xit.net
Thu Oct 27 06:39:31 CEST 2005


Yeah, cool. i am just starting this part.
i am glad i started with python.
thanks for the help
sk


On Wed, 2005-10-26 at 21:32 -0700, w chun wrote:
> >         i am writing some (for me) pretty complicated stuff for work that
> > really needs to work.
> >         i have looked at exception handling...
> > and i am using some try / except statements.
> >         the problem is, that even though my script does not crash, i dont know
> > the exact error.
> >         is there a parameter that will allow me to use try and except but that
> > will also pring out the traceback statements that python usually does to
> > the terminal?
> 
> 
> exception handling is one of the greatest strengths of Python and
> other high-level languages with this feature.  it allows the
> programmer to anticipate potential problems and perhaps be able to
> accept and process them at runtime.
> 
> let's say you have a code block called BLOCK.  newbies to Python would
> typically do something like this to ensure that errors don't happen:
> 
> try:
>     BLOCK
> except:
>     pass
> 
> however, this is not the case.  if errors *do* happen, they are thrown
> away, thus serves no one any good, not the programmer nor the user.
> 
> the best solution is to catch specific exceptions and handle each
> case.  (sure, and having just one handler for multiple exceptions is
> also okay.).  one example is hugo's where he catches an IOError
> exception and uses the exception instance 'e' to get more info out of
> it.
> 
> now if you *don't* know what exceptions may happen, you can do
> something similar.  it's almost a combination of the above two
> handlers:
> 
> try:
>     BLOCK
> except Exception, e:
>     print 'Caught exception without a specific handler:", e
> 
> this will at least tell you what exception happens in BLOCK, so that
> you can modify it to be something like:
> 
> try:
>     BLOCK
> except <YourSpecificException, e:
>     # handle YourSpecificException code
> except Exception, e:
>     print 'Caught exception without a specfic handler:', e
> 
> once you know the range of exceptions that may happen in BLOCK and
> have written handlers for them, you can dispense with the general
> catch-all.
> 
> hope this helps!
> -- wesley
> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
> "Core Python Programming", Prentice Hall, (c)2006,2001
>     http://corepython.com
> 
> wesley.j.chun :: wescpy-at-gmail.com
> cyberweb.consulting : silicon valley, ca
> http://cyberwebconsulting.com



More information about the Tutor mailing list