Skip to content

Catching DatabaseError does not work #47

@Oskar-Bonde

Description

@Oskar-Bonde

The following code does not catch the DatabaseError:

try:
    query table that does not exists 
except DatabaseError:
    pass

Here is the error message:

[ERROR] DatabaseError: (aurora_data_api.exceptions.ER_UNDEF_TABLE) ERROR: relation "public.test" does not exist; Position: 28; SQLState: 42P01
[SQL: select schema_version from public.test;]
(Background on this error at: https://sqlalche.me/e/20/4xp6)
Traceback (most recent call last):
  File "/var/task/aws_lambda_powertools/logging/logger.py", line 468, in decorate
    return lambda_handler(event, context, *args, **kwargs)
  ...
  File "/var/task/sqlalchemy/engine/base.py", line 1416, in execute
    return meth(
  File "/var/task/sqlalchemy/sql/elements.py", line 516, in _execute_on_connection
    return connection._execute_clauseelement(
  File "/var/task/sqlalchemy/engine/base.py", line 1638, in _execute_clauseelement
    ret = self._execute_context(
  File "/var/task/sqlalchemy/engine/base.py", line 1843, in _execute_context
    return self._exec_single_context(
  File "/var/task/sqlalchemy/engine/base.py", line 1983, in _exec_single_context
    self._handle_dbapi_exception(
  File "/var/task/sqlalchemy/engine/base.py", line 2352, in _handle_dbapi_exception
    raise sqlalchemy_exception.with_traceback(exc_info[2]) from e
  File "/var/task/sqlalchemy/engine/base.py", line 1964, in _exec_single_context
    self.dialect.do_execute(
  File "/var/task/sqlalchemy/engine/default.py", line 942, in do_execute
    cursor.execute(statement, parameters)
  File "/var/task/aurora_data_api/__init__.py", line 287, in execute
    raise self._get_database_error(e) from e

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions