Os erros de sintaxe podem ser tratados?

Considere o seguinte código:

try:
    if True a = 1  #It's missing a colon So it's a SyntaxError!!!!!!!
except SyntaxError:
    print 'hey'

Você esperaria que fosse impressohey No entanto, gera umaSyntaxError, O mesmo erro que estou tentando evitar. Portanto, todas as exceções podem ser tratadas usando umtry-except quadra? Bem, seSyntaxErrorforam uma exceção, por que é isso, incluído noexceções internas? e, finalmente, como posso corrigir o trecho de código acima para que ele lide com a exceção corretamente?

Nota: Eu sei o que estou tentando fazer. É totalmente inútil e não serve a nenhum propósito real.

questionAnswers(2)

yourAnswerToTheQuestion