Detectar erro XHR é realmente devido a parada do navegador ou clique para uma nova página

Enquanto minha página está carregando conteúdo via XHR, se o usuário clicar no botão Parar ou clicar para ir para outra página, a função XHR error () é chamada. Isso normalmente não seria um grande problema, exceto pelo choque do usuário de ver muitas mensagens de erro (vermelhas) na página.

As mensagens são válidas - houve de fato um erro ao recuperar o conteúdo - mas é devido à interação do usuário, não devido a uma falha do sistema.

Existe uma maneira de distinguir entre um erro de timeout (404 | 500 | timeout) e um erro causado pelo fato de o usuário ter pressionado o botão de parada do navegador?

EDIT: Estou usando o Dojo (daí a referência de função de erro), mas acredito que isso seria uma situação que é comum em qualquer implementação de XHR. Eu vou olhar para readyState do objeto xhr quando error () é chamado

questionAnswers(1)

yourAnswerToTheQuestion