Para capturar todas as exceções SQL, use:
DECLARE EXIT HANDLER FOR SQLEXCEPTION
SQLWARNINGS
pode ser usado para capturar avisos também. Dentro do manipulador de exceção, para gerar o erro ou aviso que acabou de ser capturado, use:
RESIGNAL
Consulte a documentação da declaração RESIGNAL:
http://dev.mysql.com/doc/refman/5.5 /en/resignal.html
Isso está disponível desde o MySQL 5.5