TSQL success or failure result of EXEC dynamic SQL
I found the solution...
I wrapped the statements in another try catch within the big try catch
(Didn't know we can do that) :-(
    BEGIN TRY 
        EXEC dbo.createTmpFromQuery @SRC,@uniqueTMP,@createTmpStr=@SQLStr OUTPUT
        EXEC(@SQLStr)
    END TRY
    BEGIN CATCH 
        SET @ErrorMessage='Error Creating '+@uniqueTMP+' table - verify query in @SRC'
        RAISERROR(@ErrorMessage,16,1)
    END CATCH 

I tested it an it worked.
I hope this will help someone else...