Como capturar o erro do Chrome net :: ERR_FILE_NOT_FOUND no XMLHttpRequest?

Quero criar a extensão do Chrome, que será capaz de ler arquivos locais e usar o código escrito neles. Meu código simplesmente digitado é:

const readFile = (filePath) => {
  return new Promise(function (resolve, reject) {
    const xhr = new XMLHttpRequest()
    xhr.onerror = (error) => {
      reject(error)
    }
    xhr.onreadystatechange = function () {
      if (xhr.readyState === 4) {
        resolve(xhr.response)
      }
    }
    xhr.ontimeout = function () {
      reject('timeout')
    }
    xhr.open('GET', filePath)
    xhr.send()
  })
}

async function () {
    const code = await readFile(jsFilePath)
    console.log(code)
}

Esse código funciona com êxito quando meu filePath está correto. Mas quando não é o console do Chrome, lança este erro:

GET file:///home/maxim/Documents/test.jsa net::ERR_FILE_NOT_FOUND

O bloco try / catch usual não funciona

async function () {
  try {
    const code = await readFile(jsFilePath)
    console.log(code)
  } catch (e) {
    console.log(e)
  }
}

Como posso pegar esse tipo de erro?

questionAnswers(1)

yourAnswerToTheQuestion