2013-01-04 101 views
1

我目前正在使用Android中的應用內結算流程,並且在購買過程中可能會發生無數例外和問題。看起來好像我不完全理解處理程序錯誤的概念,因爲我的應用程序只顯示「[應用程序]必須關閉」。「更好」的方式來顯示異常?

在logcat的,但是,我看到在代碼中定義的異常消息:

throw new IllegalStateException("Billing is not set up. Can't perform operation: " + operation); 

爲什麼不顯示給用戶的方式這個錯誤?

+1

您是否處理異常?你的代碼是否包含在try catch塊中? – Namphibian

+0

捕獲這些異常並顯示在吐司或任何AlertDialog中。 – itsrajesh4uguys

回答

1

如果在某些情況下會出現異常,那麼您應該通過實現try catch(有時候最終)塊來真正編寫防禦性代碼。看看這個資源 - Java Exceptions

指定您期待的錯誤並相應地處理它。我希望應用程序返回一個「Toast」彈出窗口或重定向到結算設置。

注意:只是捕獲所有異常而不關心引發異常的原因是非常糟糕的做法,請嘗試在異常捕獲中特定。有時我更喜歡我的應用程序崩潰而不是付款而不交付貨物。

try { 

    // your billing code 

} catch (IllegalStateException e) { 

    //Handle exception - Would probably want to match the contents of e to your message 
    defined to ensure it is the correct exception (In case you've defined many of the same type) 

} 
2

如果你想給你的用戶,偉大而乾淨的錯誤消息,你應該嘗試了油煎麪包塊。這可讓您beautyfull消息:取他們的項目網站看看: Crouton Homepage


回到你的問題,問題是,你正在做的一個錯誤信息,你可以在只能找到Logcatlog。如果您想將其展示給用戶,請嘗試Toast消息或AlertMessage。無論我會看看@Coutout!

問候

野生動物園

+1

是的,甚至是一個對話框,以確保他們不會錯過消息,說他們在應用程序購買失敗 – jcw

0

我想這是因爲在某些情況下,這是不可取的,顯示賦予例外的消息。在例外情況下給出的一些信息不一定是應該顯示給用戶的信息。

一個示例:我曾經編寫過一個顯示Twitter提要的Web應用程序,但您沒有正確配置OAuth時,它會拋出一個異常,並顯示OAuth未正確配置的消息,但這不是信息用戶應該看到,但是管理員/開發人員。 您當然可以記錄此例外情況,並向用戶顯示更合適的消息,例如「Twitter資訊提供無法正常工作,請聯繫管理員」。

在我看來,自己處理異常會更好。這樣你就可以控制應該向用戶顯示哪些消息以及哪些消息不應該顯示。