High Generators Question 152 of 228

What happens when a generator is garbage-collected, and what is GeneratorExit?

Python & Django · Speak this in 60–90 seconds · Faridabad & Delhi NCR

PICTURE THIS: HOW TO EXPLAIN IT

IdeaGenerators
HowWhat happens inside
Why they askShows real use

Simple meaning

When a generator is closed, Python raises GeneratorExit at the paused yield so finally blocks can run.

1

WHY — Generators instead of guessing?

Why interviewers care about Generators:

Generators questions separate people

who only read docs from people who shipped.

Keep it short, concrete,

and tied to Python work.

Stay structured

Name the idea, why it exists, then one short example.

Close cleanly

End with when you use it and one common pitfall.

2

STEPS — What happens step by step?

Before you speak the answer, walk the interviewer through these steps:

  1. 1
    When a generator is

    closed, Python raises GeneratorExit at the paused yield so finally blocks can run.

  2. 2
    Catching GeneratorExit and yielding

    again is a RuntimeError

  3. 3
    How it works

    you should re-raise or return.

  4. 4
    This matters for generators

    that hold DB cursors or files.

  5. 5
    Common mistake

    What juniors usually get wrong.

  6. 6
    Close

    When you pick this over the alternative.

3

EXAMPLE — See it in action

Here's a short line you can speak, broken into clear beats:

Say this line
“Catching GeneratorExit and yielding again is a RuntimeError”
Break into beats
CatchingGeneratorExitandyieldingagainis
Speaking order
2987408337471632900

Note: Adapt this scaffold to your own project — keep it under 60–90 seconds.

Key takeaway

When a generator is closed, Python raises GeneratorExit at the paused yield so finally blocks can run. Catching GeneratorExit and yielding again is a RuntimeError

Chat with us