继code of the Webkit Speech Recognition(请参阅源代码)之后,我想在启动时发现错误(例如,当您拒绝浏览器使用麦克风时)执行其他操作。在onError事件(webkitspeech识别)中捕获javascript异常
问题是......我不知道如何捕捉这个错误之王。
最终目标是将错误消息传递给尝试启动Webkit语音识别的对象。所以如果你有另一个(好的)解决方案来做到这一点。
我有一个这样的关系:
var anObject= {
recognizer : Recognizer,
listen : function() {
try{
this.recognizer.listen();
} catch (error) {
alert('I want to do something here with the error');
}
}
}
var Recognizer = {
listen: function()
{
var recognition = new webkitSpeechRecognition();
// recognition config
try{
recognition.start();
} catch (error) {
alert(error);
// I've also tried "throw error;" but we never pass in this catch
}
recognition.onerror = function(event) {
console.log(event.error); // this works
throw event.error; // the "exception" is thrown
}
// other functions
}
}
这是不行的,我不知道为什么。我得到了一个“未捕获的异常”,因此引发异常,但未捕获。
感谢您的帮助。
感谢但实际上您没有更改代码,是吗?你用交换机取代了一些逻辑。这部分工作正常,因为我可以检测到错误。我已更新我的问题,以指定onError中的console.log正在工作。 我的问题是将错误传递给父对象。 我也更新了我的问题来解释我想要的那种关系。 – 2014-11-04 07:17:23
这是您的代码的异步性问题,而不是语音识别。 最好的办法是调用一个全局对象来处理识别错误事件中的错误。我将用代码更新上面的答案。 – 2014-11-04 12:15:23
我想我可以用window.onError来处理错误,但我没有错,所有的错误都会被处理。这不是很好(但如果没有解决方案,我会试试这个) – 2014-11-04 17:29:24