Вы должны поймать ошибку так же, как вы уже делаете для своего вызова save()
, и поскольку вы обрабатываете несколько ошибок здесь, вы можете try
несколько вызовов последовательно в одном блоке блокировки наложения, например :
func deleteAccountDetail() {
let entityDescription = NSEntityDescription.entityForName("AccountDetail", inManagedObjectContext: Context!)
let request = NSFetchRequest()
request.entity = entityDescription
do {
let fetchedEntities = try self.Context!.executeFetchRequest(request) as! [AccountDetail]
for entity in fetchedEntities {
self.Context!.deleteObject(entity)
}
try self.Context!.save()
} catch {
print(error)
}
}
Или, как указано в @ bames53 в комментариях ниже, часто лучше не ловить ошибку, где она была выбрана. Вы можете пометить метод как throws
, затем try
, чтобы вызвать метод. Например:
func deleteAccountDetail() throws {
let entityDescription = NSEntityDescription.entityForName("AccountDetail", inManagedObjectContext: Context!)
let request = NSFetchRequest()
request.entity = entityDescription
let fetchedEntities = try Context.executeFetchRequest(request) as! [AccountDetail]
for entity in fetchedEntities {
self.Context!.deleteObject(entity)
}
try self.Context!.save()
}
Помимо углубленного изучения того, как работает AWS Lambda, ознакомьтесь с AWS CodeBuild и AWS CodePipelilne .
Вы можете запускать сборку всякий раз, когда вы вносите изменения в свой репозиторий github, в зависимости от настроек source
на этапе конвейера. Свяжите свой репозиторий github на шаге.
Часть CodeBuild служит вашей средой, которая создает проект. Я предполагаю, что zappa - это только один из инструментов, которые вы используете для развертывания, вы можете добавить это как часть этапов / фаз buildspec, необходимых для сборки приложения, или, возможно, просто загрузить требования вашего приложения и / или загрузить их на s3, который будет исходным кодом, к которому будет обращаться ваша лямбда-функция.