How else we can use pre_body method and post_body method in a sequence apart from raising and dropping objections?

There are difference between pre_start() and pre_body().

The pre_body() is not called if the sequence is started in another sequence.
So don’t use pre_body() to do any data initialization or raising objection.

Instead pre_start() is always called when a sequence is started.