feat: better exceptions and logging and startup #31
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
I was taking a look at the exception logging and found that the stacktrace is not properly logged.
Ideally, we would not also show a lot of the unnecessary Uvicorn/Starlette/FastAPI stacktrace, but I did some exploration and it's not easy at all to remove this if you do want to have the stacktrace of your application. It's best we just live with it.
Throwing an AppError in the application will now log the error and lead to a 500 response.
Other improvements:
execute_catch
(renamed formexecute_catch_conn
) to allow better handling of exceptions. I added a new type of DbError, ProgrammingError based on the SQLAlchemy exception type. This occurs for instance when a table is undefined.nu dev.nu backend
will now start the backend.