Skip to content

argparse exits on error even when exit_on_error=False #103498

@sfermigier

Description

@sfermigier

Bug report

When ArgumentParser encounters certain errors, it calls self.error(...) which exits, even when exit_on_error is set to False.

This prevents catching the exception and writing a custom error message.

import argparse parser = argparse.ArgumentParser(exit_on_error=False) parser.add_argument('filename') try: args = parser.parse_args([]) except Exception: print("Bad argument, here's what you should do instead...")

Test on Python 3.11.3:

python argparse-bug/repro.py usage: repro.py [-h] filename repro.py: error: the following arguments are required: filename

Linked PRs

Metadata

Metadata

Assignees

No one assigned

    Labels

    stdlibStandard Library Python modules in the Lib/ directorytype-bugAn unexpected behavior, bug, or error

    Projects

    Status

    Doc issues

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions