Попробуйте это:
def inc
page3 = `curl https://api.statuspage.io/v1/pages/incidents.json?page=3 -H "Authorization: OAuth a8ef42"`
JSON.parse(page3).each do |h|
begin
puts "ID : #{h["id"]} , CREATED AT : #{h["created_at"]} , LINK : #{h["shortlink"]} , ISSUE NAME : #{h["name"]} , DESCRIPTION #{h["incident_updates"][0]["status"]} , DESCRIPTION #{h["incident_updates"][1]["status"]}"
rescue NoMethodError => e
puts e
end
end
end
Объяснение:
Всякий раз, когда перехватывается исключение, он пытается выйти из блока, в котором произошло исключение.
В предыдущем коде вы обрабатываете его в рамках функции.Итак, когда исключение происходило в итерации, оно выходило из цикла, потому что оно не было обработано внутри области, в которой оно происходило (цикл), и было перехвачено прямо вне цикла, потому что вы написали его там (внепетля).
Чтобы продолжить процесс итерации, вы должны обработать его там, где он происходил, чтобы система знала, что он был обработан идеально, и она может выполнить следующую итерацию.