RAISERROR with severity (second parameter) less or equal to 10 will not throw exception.
BEGIN TRY
print 'First statement';
RAISERROR( 'Here is a problem!', 10, 15);
print 'Second statement';
END TRY
BEGIN CATCH
print 'Error: ' + ERROR_MESSAGE();
END CATCH
After RAISERROR statement, third statement will be executed and CATCH block will not be invoked. Result of execution is:
First statement
Here is a problem!
Second statement