Yup. Normal behaviour. Most errors terminate the statement, not the batch.
If that's not what you want, you need some error handling, and probably some transactions.
The blog post talks about transactions, but the behaviour's the same with or without transactions
Microsoft Certified Master: SQL Server, MVP, M.Sc (Comp Sci)
SQL In The Wild: Discussions on DB performance with occasional diversions into recoverability
We walk in the dark places no others will enter
We stand on the bridge and no one may pass