Chapter 3. Exceptions and Transactions
In the previous chapter, we did a lot of work with data in single statements, and we avoided doing anything that could result in an error. In this chapter, we will purposely perform some actions incorrectly so that we can see the types of errors that occur and how we should respond to them. We’ll conclude the chapter by learning how to group statements that need to succeed together into transactions so that we can ensure that either the group executes properly or is cleaned up correctly. Let’s start by blowing things up!
Exceptions
There are numerous exceptions that can occur in SQLAlchemy, but we’ll focus on the most common ones: AttributeErrors and IntegrityErrors. By learning how to handle these common exceptions, you’ll be better prepared to deal with the ones that occur less frequently.
To follow along with this chapter, make sure you start a new Python shell and load the tables that we built in Chapter 1 into your shell. Example 3-1 contains those tables and the connection again for reference.
Example 3-1. Setting up our shell environment
fromdatetimeimportdatetimefromsqlalchemyimport(MetaData,Table,Column,Integer,Numeric,String,DateTime,ForeignKey,Boolean,create_engine,CheckConstraint)metadata=MetaData()cookies=Table('cookies',metadata,Column('cookie_id',Integer(),primary_key=True),Column('cookie_name',String(50),index=True),Column('cookie_recipe_url',String(255)),Column('cookie_sku',String(55)), ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access