In that case it would depend on what happens within the For Each Row activity, and the consequences of a failure.
If the For Each Row is just doing repository stuff, the initial query is the only db activity, and a retry wouldn't break anything then I would wrap the whole thing in one big try-catch.
If the For Each Row performs another database activity, then it would depend on whether that is an insert or an update since a retry has different implications.
For inserts, I would put the try-catch inside of the loop iteration so it catches the insert error but doesn't break the entire loop.
For updates, running the same update twice usually won't hurt anything so I would just keep one big try-catch.
However, it also depends on how you want to handle any errors.
If you want it to keep going to the next row, then you'd need a try-catch inside the loop so one error on insert/update doesn't break the loop.
Also, it depends on how critical it is that these activities complete successfully, and how they're being triggered.
For example, if they're triggered by Forms, Forms is set to wait for the workflow, and the workflow terminates, then that would suspend the Forms instance so retrying would run the workflow again.
If there's no easy way to retrigger the workflow and you want the best chance of success, I usually create a boolean token like "Update Complete" set to false by default.
Then, I put the db activity inside of a repeat loop and set the token to true right after the db activity.
That way, if it completes successfully the token is updated and the loop ends, but if it triggers the try-catch and never reaches the token update, it will trigger the repeat and try again automatically (in this case I usually put at least a 1-min delay in the catch branch).
If you have the try-catch inside of the for each row on a loop, then make sure you're resetting the "complete" token to false at the beginning of the row loop so the success of the previous iteration doesn't affect the next one.
I usually do something like this, but again it really depends on the context.
