how to use bool

Scott David Daniels Scott.Daniels at Acm.Org
Sun Jan 6 19:52:35 CET 2008


jimgardener at gmail.com wrote:
> ...if another method in the same class calls this method but wants to
> pass the error to a gui code which calls it,,can i do like this
> 
>   def callingmethode(self):
>       try:
>          mymethod()
>       except MyError,myerr:
>          raise myerr
> 
> so that I can handle the error in a gui code that calls
> callingmethode()
> 
> class MyGUI:
>    def guimethode(self):
>       someinst=SomeClass()
>       try:
>         someinst.callingmethode()
>       except MyError,myer:
>          self.dealwithMyError(myer)
> 
> is this kind of raising exception the correct way?I am getting syntax
> error at
> except MyError,myerr:
>          raise myerr
> 

Almost.  The callingmethode code above behaves like:
     def callingmethode(self):
         mymethod()
except that your code hides the traceback information.
If you need to do something locally (other than passing
along the exception), use either:
     def callingmethode(self):
         try:
            mymethod()
         finally:
            cleanup_stuff()
or (if you have some exception-specific code to do):
     def callingmethode(self):
         try:
            mymethod()
         except MyError,myerr:
            stuff_only_for_exceptional_cases()
            raise  # Note that this keeps the original traceback.


--Scott David Daniels
Scott.Daniels at Acm.Org



More information about the Python-list mailing list