DB API中定義了一些數(shù)據(jù)庫操作的錯誤及異常,下表列出了這些錯誤和異常:
異常 |
描述 |
Warning |
當有嚴重警告時觸發(fā),例如插入數(shù)據(jù)是被截斷等等。必須是 StandardError 的子類。 |
Error |
警告以外所有其他錯誤類。必須是 StandardError 的子類。 |
InterfaceError |
當有數(shù)據(jù)庫接口模塊本身的錯誤(而不是數(shù)據(jù)庫的錯誤)發(fā)生時觸發(fā)。 必須是Error的子類。 |
DatabaseError |
和數(shù)據(jù)庫有關的錯誤發(fā)生時觸發(fā)。 必須是Error的子類。 |
DataError |
當有數(shù)據(jù)處理時的錯誤發(fā)生時觸發(fā),例如:除零錯誤,數(shù)據(jù)超范圍等等。 必須是DatabaseError的子類。 |
OperationalError |
指非用戶控制的,而是操作數(shù)據(jù)庫時發(fā)生的錯誤。例如:連接意外斷開、 數(shù)據(jù)庫名未找到、事務處理失敗、內存分配錯誤等等操作數(shù)據(jù)庫是發(fā)生的錯誤。 必須是DatabaseError的子類。 |
IntegrityError |
完整性相關的錯誤,例如外鍵檢查失敗等。必須是DatabaseError子類。 |
InternalError |
數(shù)據(jù)庫的內部錯誤,例如游標(cursor)失效了、事務同步失敗等等。 必須是DatabaseError子類。 |
ProgrammingError |
程序錯誤,例如數(shù)據(jù)表(table)沒找到或已存在、SQL語句語法錯誤、 參數(shù)數(shù)量錯誤等等。必須是DatabaseError的子類。 |
NotSupportedError |
不支持錯誤,指使用了數(shù)據(jù)庫不支持的函數(shù)或API等。例如在連接對象上 使用.rollback()函數(shù),然而數(shù)據(jù)庫并不支持事務或者事務已關閉。 必須是DatabaseError的子類。 |