In general, the "failure" of a Flow step is not a Marketo concept. For example, even if a webhook call fails to connect to a remote endpoint, that's still a completed step.

Exception handling can be done via other campaigns. In the webhook example, if you have a Webhook is Called trigger SC, that second SC can determine what should happen next based on the actual result (404, 500, timeout, response value) of the call. The second SC can remove the lead from the first SC's flow (provided there's a Wait Step that might be keeping it in the first SC). Or the first SC might end with the webhook call, then the second SC picks up from there.

Exceptions can also be handled in the same campaign: for example. by using Remove from Flow + Add Choice you can make conditions that might be due to changes made in earlier steps.

What if same happens for Batch SC? i.e. 100 leads were qualified in batch SC and 50th lead was failed in first step, what happens for the next flow steps.?

Again, defining "failure" is up to you, You might branch a subsequent step based on whether the lead Was Sent Email in the past, so a hard failure (or skip) of the Send Email step would mean they wouldn't qualify later. Of course when you reuse emails this gets trickier.