繼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