There is no reasonable way to catch and diagnose errors on server side. It is nearly impossible to know exactly what went wrong. To illustrate, consider the following query: INSERT INTO my_table (my_column) VALUES (300); What could go wrong with this query? We might hit a UNIQUE KEY violation Or a FOREIGN KEY violation my_column [...]