Python sqlite3 try except

Обработка исключений#

Посмотрим на пример использования метода execute при возникновении ошибки.

В таблице switch поле mac должно быть уникальным. И, если попытаться записать пересекающийся MAC-адрес, возникнет ошибка:

In [37]: con = sqlite3.connect('sw_inventory2.db') In [38]: query = "INSERT into switch values ('0000.AAAA.DDDD', 'sw7', 'Cisco 2960', 'London, Green Str')" In [39]: con.execute(query) ------------------------------------------------------------ IntegrityError Traceback (most recent call last) ipython-input-56-ad34d83a8a84> in module>() ----> 1 con.execute(query) IntegrityError: UNIQUE constraint failed: switch.mac 

Соответственно, можно перехватить исключение:

In [40]: try: . : con.execute(query) . : except sqlite3.IntegrityError as e: . : print("Error occurred: ", e) . : Error occurred: UNIQUE constraint failed: switch.mac 

Обратите внимание, что надо перехватывать исключение sqlite3.IntegrityError, а не IntegrityError.

Источник

Exception Handling#

Let’s see an example of how to use execute method when an error occurs.

In switch table the mac field must be unique. If you try to write an overlapping MAC address, there is an error:

In [37]: con = sqlite3.connect('sw_inventory2.db') In [38]: query = "INSERT into switch values ('0000.AAAA.DDDD', 'sw7', 'Cisco 2960', 'London, Green Str')" In [39]: con.execute(query) ------------------------------------------------------------ IntegrityError Traceback (most recent call last) ipython-input-56-ad34d83a8a84> in module>() ----> 1 con.execute(query) IntegrityError: UNIQUE constraint failed: switch.mac 

Accordingly, you can catch the exception:

In [40]: try: . : con.execute(query) . : except sqlite3.IntegrityError as e: . : print("Error occurred: ", e) . : Error occurred: UNIQUE constraint failed: switch.mac 

Note that you should catch sqlite3.IntegrityError exception, not IntegrityError .

Источник

Читайте также:  Php find class in file
Оцените статью