O usuário aqui afirma que fetch() lançou uma exceção. Eu teria muito cuidado ao assumir que ele não lança ou não lança uma exceção apenas porque eles são normalmente lançados quando você prepara ou liga. Esta é uma boa razão para colocar a chamada dentro de um bloco try. Então, para responder à pergunta, no caso altamente improvável de falha, sim, fetch() deve lançar uma exceção e, nesse caso, aconteceu. Agora será interessante ver se há outros casos também.