Deprecate should_ignore_error method

The `should_ignore_error()` method was added in f191809 to support
context preservation for debugging, but it no longer serves its
original purpose and adds unnecessary overhead.

Issues with the current implementation:
- Always returns False by default
- Called on every single request with no benefit
- The original intention for error ignoring during debugging is not
  how context preservation works anymore
- No documentation beyond API reference
- No tests for the functionality
- No evidence of real-world usage

Changes:
- Add deprecation warning to App.should_ignore_error() that will be
  removed in Flask 4.0
- Optimize call site to only invoke the method if it's been overridden
  by a subclass, eliminating the function call overhead for 99.9% of
  requests
- Add comprehensive tests for the deprecation behavior
- Update CHANGES.rst with deprecation notice

Teardown handlers should manage their own error handling instead of
relying on this method.

Fixes #5816
This commit is contained in:
Ayush Patil 2025-12-18 17:47:38 +05:30
parent 2579ce9f18
commit 04a5a04140
4 changed files with 103 additions and 2 deletions

View file

@ -16,6 +16,9 @@ Unreleased
deprecation period. :issue:`5815`
- ``template_filter``, ``template_test``, and ``template_global`` decorators
can be used without parentheses. :issue:`5729`
- Deprecated ``App.should_ignore_error()``. This method always returned ``False``
and added an unnecessary function call on every request. Teardown handlers should
manage their own error handling instead. :issue:`5816`
Version 3.1.2