0

如何在流星中偵聽未捕獲的異常錯誤?如何處理Meteor中未捕獲的異常錯誤?

錯誤當然是特定於原因的,所以請您提供僞代碼/說明,說明處理此錯誤的概念。

一個例子使用案例:

用戶點擊「註銷」,但有一個未捕獲的異常,並且用戶不會被註銷,因此對服務器的連接保持打開狀態。

回答

1

您可以使用回調函數,它們通常會提供一個reason參數。例如

Meteor.call("some_random_non_existent_method", function(err, result) { 
    if(err) return alert(err.reason) 
}); 

大多數流星迴調有一個error參數。隨着註銷其Meteor.logout(function(err) { ... })

你應該能夠捕捉這樣的大多數類型的錯誤。如果你想捕獲所有的錯誤,你可以使用try..catch。 try塊中的所有內容都會嘗試運行,直到它引發錯誤。您可以catch這並提供反饋給用戶。

try { 
    //This will throw an error 
    this.run_something.go_make_error() 
}catch(e) { 
    alert("There was an error running this"); 
} 
+0

所以,如果趕上(或更具體地說,匹配在Meteor.logout錯誤回調對象未捕獲的異常情況,我將如何註銷用戶? 難道我用「process.exit()」警報後,然後提醒用戶再次嘗試註銷 – meteorBuzz 2015-02-24 14:54:22

+1

@CodeCandy記住'process.exit()'只適用於服務器端,它會完全退出應用程序。如果出現錯誤時用戶登出最好的辦法就是讓他們知道問題出在哪裏,讓他們再試一次,它不可能通過嘗試重新註銷來實現,例如,如果互聯網是但在此情況下無法提供幫助,除了提醒用戶他們可以先重新連接以註銷外。 – Akshat 2015-02-28 14:33:25

+0

謝謝,這個解決方案非常有意義。 – meteorBuzz 2015-02-28 14:45:07