Итак, скажем, у меня есть этот код Python:
def loopForEachFileInDirectory(self, conn):
for filename in os.listdir(uploadedFilesDirectory):
try:
self.insertNewEntryForStagingFile(conn, filename)
self.copyFilesToStagingDirectory(filename)
except: ???
def copyFilesToStagingDirectory(self, filename):
logging.info("copying %s to youtube_ready",filename)
try:
shutil.copy(uploadedFilesDirectory+filename, stagingDirectory)
logging.info("move successful")
except shutil.Error,e:
logging.warn("move failed for reasons \n\t%d:%s", e.args[0],e.args[1])
raise ???
Теперь у метода loopForEachFileInDirectory будет еще несколько методов - я делаю немного чистого кода (приветствует Роберта Мартина) здесь. Что я хотел бы, так это всплыть любые исключения из под-методов, и, если что-то случится в главном цикле, внести залог в этот цикл и продолжить.
Вопрос в том, каково правило для всплытия общего исключения? Я просто поднять самостоятельно? И если да, то как я генерирую исключение общего характера, и как мне перехватить и записать подробности общего исключения?