microsoft / mssql-django

The Microsoft Django backend for SQL Server provides a connectivity layer for Django on SQL Server or Azure SQL DB.
Other
351 stars 115 forks source link

return in finally swallows exceptions #417

Open iritkatriel opened 1 month ago

iritkatriel commented 1 month ago

In https://github.com/microsoft/mssql-django/blob/cdad07b8a3a06d6127b38bb03010eadf81436518/testapp/tests/test_jsonfield.py#L25 there is a return statement in a finally block, which would swallow any in-flight exception.

This means that if an unhandled exception (including a BaseException such as KeyboardInterrupt) is raised from the try body, or any exception is raised from an except: clause, it will not propagate on as expected.

If the intention is to suppress all exceptions, I would propose to make this clear by using "except BaseException".

See also https://docs.python.org/3/tutorial/errors.html#defining-clean-up-actions.