With SQL Server 2012, the THROW statement was introduced to T-SQL. On the whole, I find the syntax and usability of THROW to be more intuitive than RAISERROR, however I came across an interesting difference today: the way in which they handle output variables from a stored procedure.