내 데이터베이스에 새 테이블을 추가 할 수있는 함수를 작성 중입니다. 특정 종류의 pymysql.err.InternalErrors를 제외하고 어떻게합니까?
pymysql.err.InternalError: (1050, "Table 'doesthiswork' already exists")
그래서 내가 일 내 코드를 제외하고는 추가하지만 모든 내부 오류를 제외한다 : 테이블이 이미 나는 오류 메시지가있을 때 나는 데 문제입니다. 나는 내부 오류가 아닌 1050이라고 가정하고있는 특정 오류를 제외하고 내 코드를 어떻게 얻을 수 있습니까?
는
import pymysql
def CreateTable(Host,User,Password,DataBase,TableName):
try:
conn = pymysql.connect(
host = Host,
user = User,
password= Password,
db = DataBase
)
a = conn.cursor()
tblName = TableName
sql = 'CREATE TABLE'+" "+ tblName + '(try varchar(128));'
a.execute(sql)
except pymysql.err.InternalError:
print (tblName + " " + 'already exist')
위의 코드는 작동하지만, 내부 오류의 다른 유형이 그냥 제외하고는 테이블로 이미 실제 오류 자체를하지 존재하는 것이 표면화 경우 앞서 언급한다.
except pymysql.err.InternalError as e:
code, msg = e.args
if code == 1050:
print(tblName, 'already exists')
당신은 할 수 있지만 : 예를 들어,
이try:
# your code here
except pymysql.err.InternalError:
print('already exists')
except:
print('catch-all exception!')
에서 @ AChampion의 답변을 받아주세요 사람 예외 객체로부터 코드를 읽는 아이디어를 제안했다. 더 공평 하리라. 감사! – alecxe
나는 다른 대답을 받아 들였고, 나는 정말로 잘 작동 할 수있는 당신의 생각을 좋아했다. – ZacAttack