Just wondering if anyone could give me advice on handling potential error conditions in python, it seems that exceptions are used alot more for this stuff than in other languages.
I have provided a code sample giving an example of a first attempt at using them (in python anyway) and also I have given an example of using the logging module I intend to use to replace all the print statements... it seems hassle to set up, but I think logging can provide good flexibility. - just wondering if you could give comments on my use of exceptions and the logging module (and my code in general as i'm a relative newbie), and whether the logging module can handle the case where you have threaded code (handling file locking on the log files etc.) Cheers def Configure_Logging(): print "configuring logging" logger = logging.getLogger("CT_Deploy") logger.setLevel(logging.DEBUG) ch = logging.StreamHandler() ch.setLevel(logging.DEBUG) formatter = logging.Formatter("%(asctime)s - %(levelname)-8s - %(name)s - %(message)s") ch.setFormatter(formatter) logger.addHandler(ch) logger.debug("Logging configured") def Do_DB_Stuff(deplo_num): logger = logging.getLogger("CT_Deploy_logger.Do_DB_Stuff") sql_list = ["alter table deplo_%s move tablespace MAP" % deplo_num, "create index deplo_%s_esz on deplo_%s(esz) tablespace cadidx" % (deplo_num, deplo_num), "analyze table deplo_%s estimate statistics for all columns" % deplo_num] db_list = ["db1", "db2", "db3", "db4"] for db in db_list: try: #connect_string = "usr/[EMAIL PROTECTED]" % db #conn = cx_Oracle.connect(connect_string) #cur = conn.cursor() print "\n\nConnected to %s..." % db except cx_Oracle.DatabaseError: print "\n\nUnable to connect to %s" % db continue try: try: for sql in sql_list: #cur.execute(sql % CT_deplo_num) print "\tSuccess: executing '%s' against %s" % (sql, db) except cx_Oracle.DatabaseError: print "\tFailure: executing '%s' against %s" % (sql, db) print "\tROLLING BACK..." conn.rollback() else: conn.commit() finally: cur.close() conn.close() def main(): Configure_Logging() deplo_num = raw_input("please enter deplo num...") Do_DB_Stuff(deplo_num) if __name__ == "__main__": main() -- http://mail.python.org/mailman/listinfo/python-list