Как получить доступ к ошибке выполнения БД при использовании MySQL для Swift

Вот фрагмент кода (здесь mysql является экземпляром MySQL для Swift):

do {
    try mysql.execute("INSERT INTO ...")
} catch {
    print(error) // here will print out the actual MySQL error message
    return error.localizedDescription // return "The operation couldn’t be completed. (MySQL.Error error 6.)" The real message from the DB is lost.
}

В 1-й строке раздела catch оператор print может выдать реальное сообщение об ошибке из DB, но во 2-й строке возвращается только общий оператор:The operation couldn’t be completed. (MySQL.Error error 6.)

Как получить доступ к подчеркивающему сообщению об ошибке из базы данных?

1 ответ

Вам нужно специально поймать MySQLError так что вы можете получить доступ к его свойствам.

} catch let error as MySQLError {
    print(error.reason)
}

https://github.com/vapor/mysql/blob/master/Sources/MySQL/Error.swift

Другие вопросы по тегам