check out the remarks section in the raise error page from microsoft http://msdn.microsoft.com/en-us/library/ms178592.aspx
"When RAISERROR is run with a severity of 11 or higher in a TRY block, it transfers control to the associated CATCH block"
Your throwing a 10 so control will NOT go to the catch statement. That'll help with your calling code flow if you are trying to stop it there (not shown so hard to tell).
But!! you made a comment that rows are still inserted. I suspect you should perhaps be using a insert update trigger not an "after" trigger.
Since you throw a 10 your rows are already inserted and it won't break a transaction.
Sorry can't be more precise but kind of hard without knowing what context you are calling the insert/update statement triggering the trigger