resolveError method
Object
resolveError(
- Object error,
- StackTrace stackTrace,
- Object? operation,
- Object? previousError,
override
Implementation
@override
Object resolveError(Object error, StackTrace stackTrace, Object? operation,
Object? previousError) {
if (error is DBMySQLAdapterException) {
return error;
} else if (error is MySqlException) {
if (error.errorNumber == 1062) {
var keyMatch = RegExp(r"for key '(?:(\w+)\.(.*?)|(.*?))'")
.firstMatch(error.message);
String? tableName;
String? fieldName;
if (keyMatch != null) {
var mTable = keyMatch[1];
var mField = keyMatch[2];
var mKey = keyMatch[3];
if (mTable != null) {
tableName = mTable;
}
fieldName = mField ?? mKey;
}
return EntityFieldInvalid("unique", error.message,
tableName: tableName,
fieldName: fieldName,
parentError: error,
parentStackTrace: stackTrace,
previousError: previousError);
}
}
return DBMySQLAdapterException('error', '$error',
parentError: error,
parentStackTrace: stackTrace,
previousError: previousError,
operation: operation);
}