Como posso pegar um erro 404 no Javascript?

tenho um elemento de áudio HTML e estou a configurar dinamicamente a propriedade "src" do elemento para um ficheiro de áudio armazenado na nossa rede local.

é assim que funciona:

function setSource(source) {
   audio.src = source;
}

var audio = new Audio();
var source = "http://localhost/folder/file.mp3";
setSource(source);

por vezes, o ficheiro de áudio de origem para o qual estou a apontar tem uma ligação quebrada, o que faz com que um erro 404 seja gerado e registado na consola do navegador.

enter image description here

quero ser capaz de apanhar os erros 404 de modo a evitar que sejam registados na consola.

Foi assim que tentei.
function setSource(source) {
  try {
    audio.src = src;
  }//end try
  catch (e) {
    //do nothing
  }//end catch
}//end setSource

var audio = new Audio();
var source = "http://localhost/folder/file.mp3";
setSource(source);
Infelizmente, a minha declaração de tentativa / captura não faz absolutamente nada e o erro ainda está ligado à consola. Estou a fazer alguma coisa errada?

Devido à natureza do meu aplicativo, haverá muitos erros 404, o que é normal e esperado, mas parece muito instável e "feio" para os usuários (se acontecer de abrir o console).

FYI: estou a usar o Google Chrome.

Author: cleverpaul, 2017-08-09

2 answers

audio.onload = function() {
    console.log('success');
};
audio.onerror = function() {
    console.log('fail');
};
audio.src = 'http://localhost/folder/file.mp3';
 1
Author: grantonzhuang, 2017-08-09 04:01:07

Neste caso, o registo de erros HTTP na consola do navegador é uma funcionalidade exclusiva do navegador e não do Javascript, ou de qualquer outro código do site.

Isto não pode ser evitado.
 0
Author: cleverpaul, 2017-08-09 04:20:12