2015-05-28 30 views
-2

我在商店裏有一個Windows Phone 8.1應用程序,似乎正在崩潰一些。這通常很容易解決,但例外情況似乎發生在Windows API的深處。當我最初開發我的應用程序時,我從未遇到任何這些例外情況。我也在網上搜索,但似乎無法找到任何有關這些。
Here's an Excel Online workbook with stack trace and exception data.(OneDrive)

我的問題是,我如何解決這些例外情況,並在將來阻止它們?如何防止不是由用戶代碼引起的異常?

+0

雖然您的異常來自Windows API,但它們可能是由您的實際程序引起的。想象一下將數字分爲零。當然,你從窗口得到一個異常,但實際的原因是你的程序,所以你必須處理這些異常。 – HimBromBeere

+0

@HimBromBeere我明白你在說什麼,並且我已經將它應用到了我的應用程序中,以便有合理的機會拋出異常。另一方面,堆棧跟蹤不包含任何與我編寫的代碼相關的任何內容(這是我感到困惑的地方)。 –

回答

2

無法捕獲Windows Phone應用程序上的所有異常,因爲其中一些異常是由OS級別的不穩定性引起的。但是,您可以通過設置全局異常處理程序來捕捉其中的大部分。

首先,訂閱的應用程序構造的UnhandledException事件:

public App() 
{ 
    this.InitializeComponent(); 

    this.UnhandledException += App_UnhandledException; 
} 

在事件處理程序,設置e.Handledtrue

void App_UnhandledException(object sender, UnhandledExceptionEventArgs e) 
{ 
    e.Handled = true; 
} 

我也建議的方式添加到記錄異常並自動將它們發送給您,因爲您可能隱藏了您可以/應該修復的合法錯誤。

+0

謝謝,我會繼續努力,看看我能做些什麼。 –

相關問題