Как вызвать ошибку в AWS Лямбда-обработчике - PullRequest
0 голосов
/ 24 февраля 2020

Я вызываю два класса в своем AWS Лямбда-обработчике, которые не связаны друг с другом. Поскольку мне нужно настроить один и тот же планировщик заданий cron, оба находятся в одном и том же лямбда-обработчике.

Я хочу отобразить ошибку, если произойдет сбой, но в то же время должен сработать второй вызов класса:

def handle(event:, context:)
  ListCreator.new.call
  Messenger.new.call
  { statusCode: 200 }
end

ListCreator.new.call получил ноль, выдал ошибку 'I was not able to send a message', Messenger.new.call, 200

И то же самое при сбое Messenger.

Как мне это сделать?

1 Ответ

0 голосов
/ 24 февраля 2020

Вы можете использовать ensure:

def handle(event:, context:)
  ListCreator.new.call
rescue SomeErrorTypeFromListCreator => e # or just rescue => e 
  'I was not able to send a message'
ensure
  begin
    Messenger.new.call
    { statusCode: 200 }
  rescue SomeErrorTypeFromMessenger => e # or just rescue => e 
    'I was not able to send the other message'
  end
end

Блок ensure будет вызываться каждый раз.

Я не думаю, что вы можете поднять обе вещи одновременно, может быть, вы можете вернуть эти строки или зарегистрировать их.

...