2010-12-03 30 views
0

我有一個相當穩定的(沒有更多的崩潰實際上)上運行的應用程序,但大家都知道你的程序,一旦崩潰,因爲它在別人手裏得到:d使我的應用程序崩潰更優雅

什麼我希望找到一個能夠捕捉和控制應用程序意外崩潰時發生的事情的地方(顯示更好的消息,發送日誌,可能的恢復......)

我知道它肯定不是那麼簡單,但如果有辦法可以抓住它們中的大部分,那麼它仍然會很好。

(例如存在GLSurfaceView小錯誤,當它被關閉的原因有時由於一個EGL交換緩衝器崩潰)

任何想法?

回答

2

你應該看看這篇文章:http://stuffthathappens.com/blog/2007/10/07/programmers-notebook-uncaught-exception-handlers/

但是使用這個時候,你可能在你的應用程序掩蓋錯誤,如果你採取這只是假裝您的應用程序的工作,你正在做的要小心它錯了:)

+0

我知道它不是正確的方式,我的主要目的是能夠獲得日誌在現場(提供給用戶一種方式來通知我,當應用程序崩潰,而不是良好的舊「你的應用程序已停止意外的是,很糟糕「 – 2010-12-03 06:32:52

1

這裏是一個真正的方式來捕捉任何給定異常:

try { 
    //do some stuff here 
} catch (Throwable e) { 
    //handle exception here 
} 

,如果你不知道這是怎麼回事拋出這是有用的。因此,對任何一種恢復都不會有什麼幫助。這是我在開發測試期間不會使用的東西。

+0

我知道這是懶惰的,根本不應該完成,因爲目前我沒有任何項目可以將恢復系統設置爲這樣,我完全確信我的代碼是因爲我搗毀了我的屁股,追蹤了5種不同的Android手機在開發和測試過程中出現的每一個大或小的錯誤,但我一直是一個程序員,知道沒有任何程序是100%確定的。你會嘗試抓住,因爲沒有主要功能啓動一切^^ – 2010-12-03 06:36:33