[英]how to catch an unhandled exception in windows phone 7 application?
[英]How to print the exception in Windows Phone?
我正在嘗試為Windows Phone 8編寫應用程序代碼。如果我得到任何內容,我想在屏幕上打印異常。 所以這就是我在做的事情:
try
{
//The code which I want to handle for exception
}
catch (Exception e)
{
ErrorStatus.Text = e.Message + "\n\n" + e.Source + "\n\n" + e.StackTrace;
}
其中ErrorStatus
是我的TextBlock。 但是,我的catch塊中唯一的一行是在運行時給出了異常。 例外是:
A first chance exception of type 'System.UnauthorizedAccessException' occurred in System.Windows.ni.dll An exception of type 'System.UnauthorizedAccessException' occurred in System.Windows.ni.dll and wasn't handled before a managed/native boundary
我在語法上做錯了嗎? 我是C#編程以及Windows Phone編程的新手。
編輯:
異常的更多細節:
System.UnauthorizedAccessException was unhandled by user code
HResult=-2147024891
Message=Invalid cross-thread access.
Source=System.Windows
InnerException:
您需要從UI線程顯示您的消息:Web調用始終在后台工作線程上回調。 因此,您需要調用Dispatcher以使其在UI線程上運行。
您也可以使用Exception.ToString()
將消息內容顯示為字符串。 這樣做的好處是還可以在您正在處理的異常中顯示任何嵌套異常。
作為臨時措施嘗試:
catch (Exception e)
{
Deployment.Current.Dispatcher.BeginInvoke(() =>
{
ErrorStatus.Text = e.ToString();
}
}
更永久地,您應該修復問題或將其記錄到文件中,這樣您就不會捕獲掩蓋代碼中的錯誤的異常。
這是打印出異常消息的最佳方式,以便您可以知道問題所在:
try{}
catch(Exception ex)
{
await new MessageDialog("Error message:\n\n" + ex.message).ShowAsync();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.