
SQLError
を投げる
この段階で、すでに
DBcm.py
ファイルの先頭に
SQLError
例外クラスを追加しています。
import mysql.connector
class ConnectionError(Exception):
pass
class CredentialsError(Exception):
pass
class SQLError(Exception):
pass
class UseDatabase:
def __init__(self, config: dict):
self.configuration = config
SQLError
例外クラスを定義したので、
__exit__
メソッドにコードを追加し、
exc_type
が対象の例外かどうかを調べ、その場合には
SQLError
を
raise
するようにするだけで、とて
も簡単です。通常であれば、必
要なコードの作成は練習問題にするのが
Head First
流ですが、こ
こではやめておきます。
__exit__
メソッドに追加する必要があるコードを示します。
def __exit__(self, exc_type, exc_value, exc_traceback):
self.conn.commit()
self.cursor.close()
self.conn.close()
if exc_type is mysql.connector.errors.ProgrammingError:
raise SQLError(exc_value) ...