Home / Function/ _get_exc_class_and_code() — flask Function Reference

_get_exc_class_and_code() — flask Function Reference

Architecture documentation for the _get_exc_class_and_code() function in scaffold.py from the flask codebase.

Entity Profile

Dependency Diagram

graph TD
  3b660c5d_ab73_8e46_a1e8_f86033a43906["_get_exc_class_and_code()"]
  a813bd5c_bf41_d926_8dde_6a113d5e0018["Scaffold"]
  3b660c5d_ab73_8e46_a1e8_f86033a43906 -->|defined in| a813bd5c_bf41_d926_8dde_6a113d5e0018
  ee25cbe7_f849_f0aa_f045_a06792ee042e["_find_error_handler()"]
  ee25cbe7_f849_f0aa_f045_a06792ee042e -->|calls| 3b660c5d_ab73_8e46_a1e8_f86033a43906
  eba08275_fc06_f17e_1fee_04ddb9a4e448["register_error_handler()"]
  eba08275_fc06_f17e_1fee_04ddb9a4e448 -->|calls| 3b660c5d_ab73_8e46_a1e8_f86033a43906
  style 3b660c5d_ab73_8e46_a1e8_f86033a43906 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

src/flask/sansio/scaffold.py lines 657–698

    def _get_exc_class_and_code(
        exc_class_or_code: type[Exception] | int,
    ) -> tuple[type[Exception], int | None]:
        """Get the exception class being handled. For HTTP status codes
        or ``HTTPException`` subclasses, return both the exception and
        status code.

        :param exc_class_or_code: Any exception class, or an HTTP status
            code as an integer.
        """
        exc_class: type[Exception]

        if isinstance(exc_class_or_code, int):
            try:
                exc_class = default_exceptions[exc_class_or_code]
            except KeyError:
                raise ValueError(
                    f"'{exc_class_or_code}' is not a recognized HTTP"
                    " error code. Use a subclass of HTTPException with"
                    " that code instead."
                ) from None
        else:
            exc_class = exc_class_or_code

        if isinstance(exc_class, Exception):
            raise TypeError(
                f"{exc_class!r} is an instance, not a class. Handlers"
                " can only be registered for Exception classes or HTTP"
                " error codes."
            )

        if not issubclass(exc_class, Exception):
            raise ValueError(
                f"'{exc_class.__name__}' is not a subclass of Exception."
                " Handlers can only be registered for Exception classes"
                " or HTTP error codes."
            )

        if issubclass(exc_class, HTTPException):
            return exc_class, exc_class.code
        else:
            return exc_class, None

Subdomains

Frequently Asked Questions

What does _get_exc_class_and_code() do?
_get_exc_class_and_code() is a function in the flask codebase, defined in src/flask/sansio/scaffold.py.
Where is _get_exc_class_and_code() defined?
_get_exc_class_and_code() is defined in src/flask/sansio/scaffold.py at line 657.
What calls _get_exc_class_and_code()?
_get_exc_class_and_code() is called by 2 function(s): _find_error_handler, register_error_handler.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free