Natknąłem się na to i chociaż rozwiązanie działa, później natknąłem się na to, co wydaje mi się lepszym rozwiązaniem. Podejrzewam, że nie była to opcja, gdy pierwotnie udzielono odpowiedzi na to pytanie.
CREATE TRIGGER `TestTable_SomeTrigger`
BEFORE UPDATE ON `test_table`
FOR EACH ROW
BEGIN
DECLARE msg VARCHAR(255);
IF (SomeTestToFail = "FAIL!") THEN
set msg = "DIE: You broke the rules... I will now Smite you, hold still...";
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = msg;
END IF;
-- Do any other code here you may want to occur if it's all OK or leave blank it will be
-- skipped if the above if is true
END$$
Spowoduje to teraz zwrócenie ładnego (lub złego!) komunikatu o błędzie, który można złapać. Aby uzyskać więcej informacji na ten temat, zobacz:http://dev.mysql.com/doc/refman/5.5/en/signal.html
Mam nadzieję, że to pomoże komuś innemu!