<p>aiohttp рдЕрдирдПрдХреНрд╕рдкреЗрдХреНрдЯреЗрд╢рдирд▓ рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдкрд╡рд╛рдж рд╣реИрдВрдбрд▓рд░ рдХреЛ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП</p>

рдХреЛ рдирд┐рд░реНрдорд┐рдд 10 рдирд╡ре░ 2020  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: aio-libs/aiohttp

ЁЯРЮ рдмрдЧ рдХрд╛ рд╡рд░реНрдгрди рдХрд░реЗрдВ
рдЬрдм рдПрдЖрдИрдУрдПрдЪрдЯреАрдЯреАрдкреА рд╕реЗ рдХреБрдЫ рдСрдмреНрдЬреЗрдХреНрдЯ рд▓реАрдХ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ, рддреЛ рд╡реЗ рдПрд╕рд┐рдВрдХреЛ рдЕрдкрд╡рд╛рдж рдЕрдкрд╡рд╛рдж рд╣реИрдВрдбрд▓рд░ рдХрд╛ рдЖрд╣реНрд╡рд╛рди рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рдХрд┐ рдХреБрдЫ рд╡рд╛рддрд╛рд╡рд░рдгреЛрдВ рдореЗрдВ (рдЬреИрд╕реЗ рдХрд┐ рдПрдпрд┐рд░реБрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ stop_on_unhandled_errors=True ) рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдкреВрд░рд╛ рдХрд╛рд░реНрдпрдХреНрд░рдо рд░реЛрдХ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣рд╛рдБ ClientResponse рдореЗрдВ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдХреЛрдб рд╣реИ:

https://github.com/aio-libs/aiohttp/blob/a8d9ec3f1667463e80545b1cac7833d1ff305e9/aiohttp/client_reqrep.py#L748 -L751

ЁЯТб рдкреБрди: рдЙрддреНрдкрдиреНрди
Aiohttp рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рд▓реАрдХ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдРрд╕рд╛ рдХрд░рддрд╛ рд╣реИред

Behavior рдЕрдкреЗрдХреНрд╖рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░
рд▓реАрдХ рдХрд░рдиреЗ рд╡рд╛рд▓реА рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдПрдХ рдЕрдкрд╡рд╛рдж рдХрд╛ рдХрд╛рд░рдг рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЗрд╕реА рдХрд╛рд░рдг рд╕реЗ open() рдПрдХ рдлрд╝рд╛рдЗрд▓ рдирд╣реАрдВ рд╣реИ рдФрд░ .close() ing рдпрд╣ рдПрдХ рдЕрдкрд╡рд╛рдж рдирд╣реАрдВ рдмрдврд╝рд╛рддрд╛ рд╣реИред

рдРрд╕рд╛ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА рдСрдмреНрдЬреЗрдХреНрдЯ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд░рд┐рд╕реЛрд░реНрд╕ рд▓реАрдХреЗрдЬ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪреЗрддрд╛рд╡рдиреА рджреЗрддреЗ рджрд┐рдЦрд╛рдИ рджреЗрддреЗ рд╣реИрдВ - рдореБрдЭреЗ рдЙрдирдХреЗ рд▓рд┐рдП рдЕрдкрд╡рд╛рдж рд╣реИрдВрдбрд▓рд░ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдХрд╛рд░рдг рдирд╣реАрдВ рджрд┐рдЦрддрд╛ рд╣реИред

On рдкрд╛рдпрдерди рдХрд╛ рдЖрдкрдХрд╛ рд╕рдВрд╕реНрдХрд░рдг

$ python --version
Python 3.8.6

Y рдЖрдкрдХрд╛ aiohttp / yarl / multidict рд╡рд┐рддрд░рдг рдХрд╛ рд╕рдВрд╕реНрдХрд░рдг

$ python -m pip show aiohttp
Name: aiohttp
Version: 3.6.2

`` `рд╕рд╛рдВрддреНрд╡рдирд╛
$ рдЕрдЬрдЧрд░ рдПрдо рдкрд╛рдЗрдк рд╢реЛ рдмрд╣реБрдЖрдпрд╛рдореА
рдирд╛рдо: рдмрд╣реБрдЖрдпрд╛рдореА
рд╕рдВрд╕реНрдХрд░рдг: 4.7.6

```console
$ python -m pip show yarl
Name: yarl
Version: 1.5.1

ЁЯУЛ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рдВрджрд░реНрдн
cjrh / aiorun # 56

рд╕рднреА 4 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдореИрдВ рдЕрд╕рд╣рдордд рд╣реВрдВред
рдЕрд╕реВрдЪреАрдмрджреНрдз рд╕рдВрд╕рд╛рдзрди рдПрдХ рдЧрдВрднреАрд░ рдкрд░реНрдпрд╛рдкреНрдд рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рддреНрд░реБрдЯрд┐ рд╣реИ рдЬрд┐рд╕реЗ рд╕рд╣реА рдХреЛрдб рд▓рд┐рдЦрдХрд░ рдЖрд╕рд╛рдиреА рд╕реЗ рддрдп рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, asyncio рдЦреБрдж рд╣реА call_exception_handler() рдХрд╛ рдЙрдкрдпреЛрдЧ рдмрд┐рдирд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП async рдХреЙрд▓ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░рддрд╛ рд╣реИред
рдпрджрд┐ рдЖрдк рдкрд╛рдВрдбрд┐рддреНрдп рдХреЛрдб рдирд╣реАрдВ рд▓рд┐рдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ - рддреЛ рдЖрдк stop_on_unhandled_errors=False рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рддреЛ, рдлрд┐рд░ рдЕрд╕рд▓реА рдЕрдкрд╡рд╛рдж рдХреНрдпреЛрдВ рдирд╣реАрдВ рдЙрдард╛рдпрд╛ рдЧрдпрд╛?

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ __del__ рдореЗрдВ рдПрдХ рдЕрдкрд╡рд╛рдж рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░рдиреЗ рдкрд░ рдзреНрдпрд╛рди рдирд╣реАрдВ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рд▓реЗрдХрд┐рди рдРрд╕рд╛ рд╣реА рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдирд╣реАрдВ? рдпрд╣ рдбреАрдмрдЧ рдХрд░рдирд╛ рдмрд╣реБрдд рдореБрд╢реНрдХрд┐рд▓ рд╣реИ "рдХреБрдЫ рдПрдХ рд╡рд╕реНрддреБ рдЖрд╡рдВрдЯрд┐рдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдареАрдХ рд╕реЗ рдмрдВрдж рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ", рдЦрд╛рд╕рдХрд░ рдЬрдм рдмрдЧ рдЖрдкрдХреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдХреЛрдб рдореЗрдВ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреБрдЫ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдореЗрдВ; source_traceback рд╕рдВрджрд░реНрдн рдХреБрдВрдЬреА рдЕрд╡рд┐рднрд╛рдЬрд┐рдд рд╣реИ, рдФрд░ рдпрд╣ asyncio рдХреЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЕрдкрд╡рд╛рдж рд╣реИрдВрдбрд▓рд░ рдХреЗ undocumented рд╡реНрдпрд╡рд╣рд╛рд░ рдкрд░ рднрд░реЛрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореИрддреНрд░реАрдкреВрд░реНрдг рд▓рдЧрддрд╛ рд╣реИ рддрд╛рдХрд┐ рд╕реНрдореГрддрд┐ рд▓реАрдХ рдХреЛ рд╕рдВрднрд╡ рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХреЗред

рдореИрдВ рдпрд╣ рднреА рдирд╣реАрдВ рджреЗрдЦрддрд╛ рдХрд┐ рдЕрд╕рд┐рдирд┐рдпреЙ рдиреЗ рдЕрдирд╡рд╛рдЗрдЯреЗрдб рдХреЛрд░рдЖрдЙрдЯреНрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪреЗрддрд╛рд╡рдиреА рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП call_exception_handler() рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд╣рд╛рдВ рдХрд┐рдпрд╛ рд╣реИред рдЬрдм рдПрдХ рдЕрдирд╡рд╛рдЗрдЯреЗрдб рдХреЛрд░рдЖрдЙрдЯ рдХрдЪрд░рд╛ рдЗрдХрдЯреНрдард╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдпрд╣ _PyErr_WarnUnawaitedCoroutine ред

    /* If `gen` is a coroutine, and if it was never awaited on,
       issue a RuntimeWarning. */
    if (gen->gi_code != NULL &&
        ((PyCodeObject *)gen->gi_code)->co_flags & CO_COROUTINE &&
        gen->gi_frame->f_lasti == -1)
    {
        _PyErr_WarnUnawaitedCoroutine((PyObject *)gen);
    }

рдЬреЛ warnings._warn_unawaited_coroutine() :

void
_PyErr_WarnUnawaitedCoroutine(PyObject *coro)
{
    /* First, we attempt to funnel the warning through
       warnings._warn_unawaited_coroutine.

рдЬреЛ рдПрдХ рд░рдирдЯрд╛рдЗрдорд╡реЗрдпрд░ рдХрд╛ рдЙрддреНрд╕рд░реНрдЬрди рдХрд░рддрд╛ рд╣реИред рдореБрдЭреЗ рд╡рд╣рд╛рдБ рдХрд╣реАрдВ рднреА call_exception_handler() рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИ - рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдореИрдВ stdlib рдореЗрдВ call_exception_handler() рдХрд╛ рдХреЛрдИ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рджреЗрдЦрддрд╛ рд╣реВрдБ рдЬрд┐рд╕рдореЗрдВ exception рд╕рдВрджрд░реНрдн рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реИред

рдФрд░ рдлрд┐рд░ рд╕реЗ: рдпрджрд┐ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдмрдВрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рднреВрд▓ рдЬрд╛рдирд╛ рдПрдХ рдЕрдкрд╡рд╛рдж рдирд╣реАрдВ рдмрдврд╝рд╛рддрд╛ рд╣реИ, рддреЛ рдХрд┐рд╕реА рднреА рдпрд╛рджреГрдЪреНрдЫрд┐рдХ aiohttp рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рд╕рд╛рдл рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрдпреЛрдВ рднреВрд▓рдирд╛ рдЪрд╛рд╣рд┐рдП?

рдЖрдк рд╕рд╣реА рд╣реИрдВ, __del__ рдкрджреНрдзрддрд┐ рд╕реЗ рдПрдХ рдЕрдкрд╡рд╛рдж рдЙрдард╛рдирд╛ рдПрдХ рд╣рддреЛрддреНрд╕рд╛рд╣рд┐рдд рдЕрднреНрдпрд╛рд╕ рд╣реИред
рдЗрд╕рд▓рд┐рдП рд╣рдореЗрдВ рдПрдХ рдФрд░ рд╕рд┐рдЧреНрдирд▓рд┐рдВрдЧ рд╕рдорд╛рдзрд╛рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
Asyncio call_exception_handler() рдХреЛ __del__ call_exception_handler() рд╕реЗ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ , Task.__del__ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рджреЗрдЦреЗрдВ: https://github.com/python/cpython/blob/master/Lib/nyncio/tasks.py # L139 -L148

рдЖрдк рд╕рд╣реА рд╣реИрдВ, source_traceback https://docs.python.org/3/library/asyncio-eventloop.html?highlight=call_exception_handler#asynci.loop.call_exception_handler рдореЗрдВ рджрд╕реНрддрд╛рд╡реЗрдЬ рдирд╣реАрдВ рд╣реИ
рдХреНрдпрд╛ рдЖрдк рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП https://github.com/python/cpython/ рдкрд░ рдПрдХ рдкреБрд▓ рдЕрдиреБрд░реЛрдз рдмрдирд╛рдПрдБрдЧреЗ? рдореБрдЭреЗ рдЗрд╕рдХреА рд╕рдореАрдХреНрд╖рд╛ рдХрд░рдиреЗ / рд╡рд┐рд▓рдп рдХрд░рдиреЗ рдореЗрдВ рдЦреБрд╢реА рд╣реБрдИред

рдФрд░ рдлрд┐рд░ рд╕реЗ: рдпрджрд┐ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдмрдВрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рднреВрд▓ рдЬрд╛рдирд╛ рдПрдХ рдЕрдкрд╡рд╛рдж рдирд╣реАрдВ рдмрдврд╝рд╛рддрд╛ рд╣реИ, рддреЛ рдХрд┐рд╕реА рднреА рдпрд╛рджреГрдЪреНрдЫрд┐рдХ aiohttp рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рд╕рд╛рдл рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрдпреЛрдВ рднреВрд▓рдирд╛ рдЪрд╛рд╣рд┐рдП?

aiohttp рд╕реЗ рдПрдХ рдЕрдкрд╡рд╛рдж рдмрдврд╝рд╛ рдирд╣реАрдВ рд╣реИ __del__ рднреА, рдпрд╣ рдЕрдЬрдЧрд░ рдореЗрдВ рдмрд╕ рдЕрд╕рдВрднрд╡ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╡рд╕реНрддреБ finalizer рдХреЗ рдХреЙрд▓ indeterministic рд╣реИред

рдЕрд╕реНрдкрд╖реНрдЯ рдлрд╝рд╛рдЗрд▓ ResourceWarning рдмрдврд╝рд╛рддреА рд╣реИред рдЗрд╕ рдЪреЗрддрд╛рд╡рдиреА рдХреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЕрдирджреЗрдЦрд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ: https://docs.python.org/3/library/warnings.html#default -warning- рдлрд╝рд┐рд▓реНрдЯрд░
рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреА рдЪреЗрддрд╛рд╡рдиреА рдмрд╣реБрдд рд╕реЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗрддреА рд╣реИ рдЕрдЧрд░ рд╡реЗ рдЙрдиреНрд╣реЗрдВ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ рдРрддрд┐рд╣рд╛рд╕рд┐рдХ рдХрд╛рд░рдгреЛрдВ рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ: рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдЗрд╕ рддрд░рд╣ рдХреА рдЪреЗрддрд╛рд╡рдиреА рдореМрдЬреВрдж рдирд╣реАрдВ рдереА, рдХрдИ рдкреБрд╕реНрддрдХрд╛рд▓рдп file.close() рдХреЙрд▓ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЙрдирдХреЗ рд▓реЗрдЦрдХреЛрдВ рдХреЛ рд╕реБрдВрджрд░ рд╕рдВрд╕рд╛рдзрди рд╕рдлрд╛рдИ, рдЖрджрд┐ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрддрд╛ рдирд╣реАрдВ рд╣реИред ред

рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, file.close() рд╕реЗ рдХрд╣рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ file.__del__ рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ, рдпрд╣ рдПрдХ рдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ рдХреЙрд▓ рд╣реИред
рд▓реЗрдХрд┐рди asyncio рджреБрдирд┐рдпрд╛ рдореЗрдВ close() рдмрд╣реБрдд рдмрд╛рд░ рдЕрд▓рдЧ рд╣реЛрддрд╛ рд╣реИ: рдпрд╣ рдПрдХ async рдлрд╝рдВрдХреНрд╢рди рд╣реЛрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдХреЗрд╡рд▓ __del__ рд╕реЗ рдирд╣реАрдВ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, transport.close() protocol.connection_lost() рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд┐рдП рдмрд┐рдирд╛ рднреА рд╕рд╛рджреЗ рд╕реЙрдХреЗрдЯ рдХреЗ рд▓рд┐рдП рдЪреЗрддрд╛рд╡рдиреА рдХреА рдУрд░ рдЬрд╛рддрд╛ рд╣реИ; рдПрд╕рдПрд╕рдПрд▓ рдХреЗ рд▓рд┐рдП рд╕реНрдерд┐рддрд┐ рдФрд░ рднреА рдЦрд░рд╛рдм рд╣реИред
aiohttp рдореЗрдВ рд╕рд┐рдВрдХ / async рдлрд╛рдЗрдирд▓ рдХреЗ рд╕рд╛рде рдереЛрдбрд╝рд╛ рдЧрдбрд╝рдмрдбрд╝ рд╣реИ рд▓реЗрдХрд┐рди рдореИрдВ рдЗрд╕ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдБ; aiohttp 4.0 рдХреЛ рдХрд╛рдлреА рд╣рдж рддрдХ рд╕рд╛рдл рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЗрд╕рд▓рд┐рдП рд╕рдлрд╛рдИ рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ, рдПрдХ рдЪреЗрддрд╛рд╡рдиреА рдХреЛ рдЙрдард╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рдЦрд░рд╛рдм рдЙрдкрдпреЛрдЧ рдХреЛ рд╕реНрдкрд╖реНрдЯ рджрд┐рдЦрд╛рдИ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП call_exception_handler() рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

Asyncio _does_ call_exception_handler() __del__ рд╕реЗ рдХреЙрд▓ рдХрд░реЗрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП Task.__del__ рджреЗрдЦреЗрдВ

рдХрд╛рдлреА рд╣рдж рддрдХ, рдореИрдВ рдЙрд╕ рдХреЙрд▓ рдХреЛ рдпрд╛рдж рдХрд┐рдпрд╛ред

рдХреНрдпрд╛ рдЖрдк рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдЬрдЧрд░ / рдХрдлрд╝рди рдкрд░ рдПрдХ рдкреБрд▓ рдЕрдиреБрд░реЛрдз рдХрд░реЗрдВрдЧреЗ?

рдореИрдВ рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ рдЕрдирд┐рд╢реНрдЪрд┐рдд рд╣реВрдВ рдХрд┐ рдЗрд╕реЗ рдХреИрд╕реЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХрд░рдирд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╣реИред рдЬрдм рд╕реЗ рдореИрдВрдиреЗ рдбреЙрдХреНрд╕, рдбреЙрдХрд╕реНрдЯреНрд░рд┐рдВрдЧ рдФрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рдмреАрдЪ рдХреБрдЫ рдЕрдиреНрдп рд╡рд┐рд╕рдВрдЧрддрд┐рдпреЛрдВ рдХреЛ рджреЗрдЦрд╛, рдореИрдВрдиреЗ bpo-42347 рдмрдирд╛рдпрд╛ред

рдЗрд╕рд▓рд┐рдП рд╕рдлрд╛рдИ рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ, рдПрдХ рдЪреЗрддрд╛рд╡рдиреА рдХреЛ рдЙрдард╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рдЦрд░рд╛рдм рдЙрдкрдпреЛрдЧ рдХреЛ рдЕрдзрд┐рдХ рджреГрд╢реНрдпрдорд╛рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП call_exception_handler () рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ, рдЬрдм рдЖрдк рдПрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдХреЗрд╡рд▓ рдирд┐рд░рд╛рд╢рд╛ рд╣реЛрддреА рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЖрдк рдЬреЛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рд╡рд╣ рдЕрдкрдиреЗ рдЖрдк рдХреЛ рдареАрдХ рд╕реЗ рд╕рд╛рдл рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдерд╛ рдХрд┐ рдпрд╣ рдЗрддрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдерд╛ рдХрд┐ рдпрд╣ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд░реЛрдХ рджреЗ, рдФрд░ рдореБрдЭреЗ рд╢реБрд░реВ рдореЗрдВ рдпрд╣ рднреА рдорд╣рд╕реВрд╕ рдирд╣реАрдВ рд╣реБрдЖ рдХрд┐ рд░рд┐рд╕рд╛рд╡ рдХрд╛ рдХрд╛рд░рдг рдерд╛ рдХрд┐ рдПрдпреЛрд░реБрди рд▓реВрдк рдХреЛ рд░реЛрдХ рд░рд╣рд╛ рдерд╛ред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

yuval-lb picture yuval-lb  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

rubenvdham picture rubenvdham  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

JulienPalard picture JulienPalard  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

Codeberg-AsGithubAlternative-buhtz picture Codeberg-AsGithubAlternative-buhtz  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

jonringer picture jonringer  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ