2013-03-21 64 views
0

我工作的一段代碼,試圖從在Windows Phone 8中的用戶設備獲得儘可能多的信息,可能我注意到這句話在認證準則將使用沒有這些功能的API會導致我的應用程序終止或僅引發異常?

您的應用程序可能會意外關閉,如果它試圖訪問它不具有安全功能的API。有關如何使用安全功能的更多信息,請參閱如何確定應用程序 的功能。

那麼究竟是什麼意思?例如,此代碼:

try 
{ 
    SomeInfo=SomeFunctionThatRequiresACapability(); 
} 
catch 
{ 
//oh well, I guess we can't get that piece of info. ignore it 
} 

這可能證明嗎?或者我需要先檢查我們是否有能力?

+0

當你測試你的代碼時,這是不可能錯過的。有時候不會隨機拋出,你沒有獲得你沒有要求的能力。所以不要添加try/catch,這是沒用的。請勾選功能或刪除代碼。 – 2013-03-21 22:54:47

+0

@HansPassant這是一個其他人將自己的電話應用程序放入其中的庫。我們真的想避免整個「使用此版本,如果你有這種能力」類型的東西 – Earlz 2013-03-22 03:38:25

回答

0

如果您不添加功能,它會在運行時引發異常。但是,由於XapValidation工具檢查編譯的代碼,它不會驗證xml文件中的功能列表。

+0

隨Visual Studio(商店測試工具包)附帶的XapValidation工具檢查編譯的代碼?我從來沒有失敗過,所以我覺得它沒有太大的作用 – Earlz 2013-03-21 20:31:04

+0

根據我的經驗,這是一個例外是網絡瀏覽器功能。 XapValidation可能會錯過它,並會在沒有能力的情況下推送您的應用程序 - 導致在運行時拋出異常。我通過在App類上創建一個WebBrowser字段來解決這個問題。 – 2013-03-21 20:59:30

+1

這不是事實。例如,根據我的經驗,將地理位置服務與不具有使用權限的應用程序一起使用可能會導致應用程序無限期地掛起。 – blueocean 2013-03-21 21:45:18

相關問題