MySQLストアドプロシージャでは、次のようにSQL例外を処理しています。
DECLARE EXIT HANDLER FOR SQLEXCEPTION 
    BEGIN
        SELECT "SQL exception occured." AS "SQL Exception";
        SHOW ERRORS;
        SHOW WARNINGS;
        ROLLBACK;
    END;
SQL exception occuredメッセージが表示され、トランザクションがロールバックされるため、例外がスローされていることを知っています。ただし、SHOW ERRORSまたはSHOW WARNINGSテーブルには何も入力されていません。これはなぜですか。また、どのSQL例外がスローされているかをどのように確認できますか?
ミステリー例外の原因となっているSQLステートメントは次のとおりです。
SELECT IF(count(*) = 0, TRUE, FALSE) 
FROM information_schema.COLUMNS 
WHERE TABLE_SCHEMA='myDatabase' 
AND TABLE_NAME='exam';
編集:
ボヘミアンは、例外がハンドラーに飲み込まれていることを私に知らせました。では、例外が何であるかを確認し、それでもロールバックするにはどうすればよいですか?Javaのcatchブロックでは、Exception.getMessage()またはを使用して例外を確認できますException.printStackTrace()。MySQLに同様の機能はありますか?