IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Apr 16, 2012, 12:18:37 PM (14 years ago)
Author:
rhenders
Message:

improvements to exception handling

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/ippToPsps/jython/loader.py

    r33776 r33787  
    4545                self.scratchDb.disconnect()
    4646                continue
    47             self.logger.infoPair("Using scratch Db", self.scratchDb.dbName)
    4847            break
    4948
    50         if not self.scratchDb.connected: 
    51             self.logger.errorPair("Cannot connect to a", "scratch database")
    52             return
     49        if not self.scratchDb.connected:
     50            self.exitProgram("Cannot connect to a scratch database")
     51            raise
    5352       
    5453        # create Datastore objects
     
    198197   
    199198            self.ippToPspsDb.unlockTables()
     199            self.ippToPspsDb.deletePendingItem(batchType, id)
     200
     201            # catch any raised exceptions in batch constructors
     202            try:
     203                if batchType == "P2":
     204                    batch = DetectionBatch(self.logger,
     205                            self.config,
     206                            self.gpc1Db,
     207                            self.ippToPspsDb,
     208                            self.scratchDb,
     209                            id,
     210                            batchID,
     211                            useFullTables)
     212                elif batchType == "ST":
     213                    batch = StackBatch(self.logger,
     214                            self.config,
     215                            self.gpc1Db,
     216                            self.ippToPspsDb,
     217                            self.scratchDb,
     218                            id,
     219                            batchID,
     220                            useFullTables)
     221   
     222                elif batchType == "OB":
     223                    batch = ObjectBatch(self.logger,
     224                            self.config,
     225                            self.gpc1Db,
     226                            self.ippToPspsDb,
     227                            self.scratchDb,
     228                            id,
     229                            batchID,
     230                            useFullTables)
     231   
     232                batch.run()
    200233   
    201             self.ippToPspsDb.deletePendingItem(batchType, id)
    202 
    203             if batchType == "P2":
    204                 batch = DetectionBatch(self.logger,
    205                         self.config,
    206                         self.gpc1Db,
    207                         self.ippToPspsDb,
    208                         self.scratchDb,
    209                         id,
    210                         batchID,
    211                         useFullTables)
    212             elif batchType == "ST":
    213                 batch = StackBatch(self.logger,
    214                         self.config,
    215                         self.gpc1Db,
    216                         self.ippToPspsDb,
    217                         self.scratchDb,
    218                         id,
    219                         batchID,
    220                         useFullTables)
    221    
    222             elif batchType == "OB":
    223                 batch = ObjectBatch(self.logger,
    224                         self.config,
    225                         self.gpc1Db,
    226                         self.ippToPspsDb,
    227                         self.scratchDb,
    228                         id,
    229                         batchID,
    230                         useFullTables)
    231    
    232             batch.run()
    233    
     234            # if batch fails, ignore and move on to the next one
     235            except:
     236                self.logger.errorPair("Problem with this %s batch (%d)" % (batchType, id), "skipping")
     237                pass
     238
    234239            if not self.checkClientStatus(): return False
    235240   
     
    256261    loader = Loader(sys.argv)
    257262    loader.run()
    258     loader.exitProgram("finished")
     263    loader.exitProgram("completed")
    259264except Exception, e:
    260265    print str(e)
    261266    traceback.print_exc()
     267
Note: See TracChangeset for help on using the changeset viewer.