Great question. I got it wrong because I didn't know about the implicit conversion of string values containing only numbers.
For example, this code throws the error I expected:
declare @a int
declare @b varchar(2)
set @a = 10
set @b = ' a'+@a + 2
select @a + @b
Server: Msg 245, Level 16, State 1, Line 5
Syntax error converting the varchar value ' a' to a column of data type int.
While answering the question, I thought only of those cases (probably the vast majority) where I had used code like the code above (for concatenation in printing test values only, not for adding numbers), and in variably it included at least one non-numeric character. So I was biased to think that such code would always throw an error.
This question is a nice corrective for my ignorance in that regard.
"I love spending twice as long and working twice as hard to get half as much done!" – Nobody ever.
"Operator! Give me the number for 911!" - Homer Simpson
"A SQL query walks into a bar and sees two tables. He walks up to them and says 'Can I join you?'"