How continue flow even if task fails

I am trying to create flows where even if a task fails, the next task will run.
In prefect 1.0 there was a way to do that, but I can’t find documentation on how to do it in Prefect 2.

Looking at: Task Runners - Prefect Docs
and at How can I handle errors, allowing my flow runs to continue until complete and not raise upon failure?

it was not clear how to achieve this behavior.

from prefect import task, flow, get_run_logger

def run_first(x):
    logger = get_run_logger()"x: {x}")
    if x > 5:
        raise IOError('Failed...')
        return x * 5

def run_last(y):
    logger = get_run_logger()"y: {y}")
    return y ** 2

@flow(name="Test running on failure")
def run_test_tasks():
    for x in [2, 8]:
        r = run_first.submit(x)
        final_state = r.wait()
        print(f"is_final: {final_state.is_final()}, is_failed: {final_state.is_failed()}")
        y = r.result()
        r2 = run_last.submit(y, wait_for=final_state.is_final())
        new_y = r2.result()

if __name__ == "__main__":

Can you refer me to the proper documentation ?