Better trace information when an exception is caught.

Signed-off-by: Edward Z. Yang <ezyang@mit.edu>
Signed-off-by: Sebastian Spaeth <Sebastian@SSpaeth.de>
Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
This commit is contained in:
Edward Z. Yang 2011-01-27 19:46:29 -05:00 committed by Nicolas Sebrecht
parent fa60f3f9b7
commit e506442996
3 changed files with 15 additions and 12 deletions

View File

@ -24,6 +24,7 @@ from threading import Event, Lock
import os import os
from Queue import Queue, Empty from Queue import Queue, Empty
import sys import sys
import traceback
class SigListener(Queue): class SigListener(Queue):
def __init__(self): def __init__(self):
@ -191,7 +192,7 @@ class AccountSynchronizationMixin:
raise raise
except: except:
self.ui.warn("Error occured attempting to sync account " + self.name \ self.ui.warn("Error occured attempting to sync account " + self.name \
+ ": " + str(sys.exc_info()[1])) + ": " + traceback.format_exc())
finally: finally:
self.ui.acctdone(self.name) self.ui.acctdone(self.name)
@ -207,7 +208,7 @@ class AccountSynchronizationMixin:
raise raise
except: except:
self.ui.warn("Error occured attempting to sync account " + self.name \ self.ui.warn("Error occured attempting to sync account " + self.name \
+ ": " + str(sys.exc_info()[1])) + ": " + traceback.format_exc())
finally: finally:
looping = self.sleeper(siglistener) != 2 looping = self.sleeper(siglistener) != 2
self.ui.acctdone(self.name) self.ui.acctdone(self.name)

View File

@ -22,6 +22,7 @@ from offlineimap.ui import getglobalui
import os.path import os.path
import re import re
import sys import sys
import traceback
class BaseFolder: class BaseFolder:
def __init__(self): def __init__(self):
@ -292,8 +293,8 @@ class BaseFolder:
except (KeyboardInterrupt): except (KeyboardInterrupt):
raise raise
except: except:
self.ui.warn("ERROR attempting to copy message " + str(uid) \ UIBase.getglobalui().warn("ERROR attempting to copy message " + str(uid) \
+ " for account " + self.getaccountname() + ":" + str(sys.exc_info()[1])) + " for account " + self.getaccountname() + ":" + traceback.format_exc())
def syncmessagesto_copy(self, dest, applyto): def syncmessagesto_copy(self, dest, applyto):
@ -399,8 +400,8 @@ class BaseFolder:
except (KeyboardInterrupt): except (KeyboardInterrupt):
raise raise
except: except:
self.ui.warn("ERROR attempting to handle negative uids " \ UIBase.getglobalui().warn("ERROR attempting to handle negative uids " \
+ "for account " + self.getaccountname() + ":" + str(sys.exc_info()[1])) + "for account " + self.getaccountname() + ":" + traceback.format_exc())
#all threads launched here are in try / except clauses when they copy anyway... #all threads launched here are in try / except clauses when they copy anyway...
self.syncmessagesto_copy(dest, applyto) self.syncmessagesto_copy(dest, applyto)
@ -410,8 +411,8 @@ class BaseFolder:
except (KeyboardInterrupt): except (KeyboardInterrupt):
raise raise
except: except:
self.ui.warn("ERROR attempting to delete messages " \ UIBase.getglobalui().warn("ERROR attempting to delete messages " \
+ "for account " + self.getaccountname() + ":" + str(sys.exc_info()[1])) + "for account " + self.getaccountname() + ":" + traceback.format_exc())
# Now, the message lists should be identical wrt the uids present. # Now, the message lists should be identical wrt the uids present.
# (except for potential negative uids that couldn't be placed # (except for potential negative uids that couldn't be placed
@ -422,7 +423,7 @@ class BaseFolder:
except (KeyboardInterrupt): except (KeyboardInterrupt):
raise raise
except: except:
self.ui.warn("ERROR attempting to sync flags " \ UIBase.getglobalui().warn("ERROR attempting to sync flags " \
+ "for account " + self.getaccountname() + ":" + str(sys.exc_info()[1])) + "for account " + self.getaccountname() + ":" + traceback.format_exc())

View File

@ -20,6 +20,7 @@ from offlineimap import CustomConfig
from offlineimap.ui import getglobalui from offlineimap.ui import getglobalui
import os.path import os.path
import sys import sys
import traceback
def LoadRepository(name, account, reqtype): def LoadRepository(name, account, reqtype):
from offlineimap.repository.Gmail import GmailRepository from offlineimap.repository.Gmail import GmailRepository
@ -166,8 +167,8 @@ class BaseRepository(CustomConfig.ConfigHelperMixin):
except (KeyboardInterrupt): except (KeyboardInterrupt):
raise raise
except: except:
getglobalui().warn("ERROR Attempting to make folder " \ UIBase.getglobalui().warn("ERROR Attempting to make folder " \
+ key + ":" +str(sys.exc_info()[1])) + key + ":" +traceback.format_exc())
# #
# Find deleted folders. # Find deleted folders.