C'est une limitation de try/catch.
Si vous regardez attentivement l'erreur générée en exécutant
BACKUP DATABASE NonExistantDB TO DISK = 'C:\TEMP\NonExistantDB.bak'
vous constaterez qu'il y a deux erreurs qui sont levées. Le premier est le msg 911, qui indique
Le second est le message 3013 que vous affichez. Fondamentalement, SQL ne renvoie que la dernière erreur.