The "/script UIErrorsFrame:Hide()" and "/script UIErrorsFrame:Show()" lines are unnecessary. Macros run inbetween frame draws, so there is never a point in time where the messages would be displayed. This particular idea leaked out into the macro community and is now a common practice, when in fact it's a complete waste of 58 characters. I feel that it is my duty to stamp this practice out whenever I encounter it.
Also, by tying Shield Slam to Shield Block as well as your trinkets, you're setting yourself up to always use those abilities/items whenever they are available, even if you may prefer to save them for situations where it really matters. If I were a tank, I would have my "oh crap" button set up separately (or via a modifier) so that I can hit it when I anticipate a big damage spike. An example might be if a boss has an Enrage mechanic, or if you have to deal with waves of adds where a high SBV is needed.
However, this is merely a matter of play style, not a hard and fast rule. If you don't want to be bothered with remembering to hit Shield Block and trinkets, then the macro is a great way to maximize your usage of those abilities.
Lastly, the macro above is specifically intended to max SBV in order to achieve huge Shield Slam results. Obviously, if you aren't equipping SBV trinkets, you would get less useful results.