How to continue "on error" using Fastlane

Ruby

begin
  do_something_that_may_cause_error
rescue => ex
  # handle error
ensure
  # do something that always run like clean up
end

Swift

defer { 
  // do something that always run like clean up
}
do {
  try doSomethingThatMayCauseError()
} catch (error) {
  // handle error
}

You can use Ruby error handling to do that

lane :item1 do
 # Do some stuff
end

lane :item2 do
 # Do some stuff
end

lane :item3 do
 # Do some stuff
end

lane :doall do
 begin
   item1 # This causes an error
 rescue => ex
   UI.error(ex)
 end
 begin
   item2
 rescue => ex
   UI.error(ex)
 end
 begin
   item3
 rescue => ex
   UI.error(ex)
 end
end

error do |lane, exception|
 # Send error notification
end

It's not super beautiful, but that's the best way to do it, if you want to catch errors for each of the lanes.