.net 使用没有这些功能的API会导致我的应用程序终止还是引发异常?

.net 使用没有这些功能的API会导致我的应用程序终止还是引发异常?,.net,exception,windows-phone-8,windows-phone,.net,Exception,Windows Phone 8,Windows Phone,我正在编写一段代码,试图从WindowsPhone8上的用户设备获取尽可能多的信息。我在认证指南中提到了这句话 如果你的应用程序试图访问它所访问的API,它可能会意外关闭 不具有可使用的安全功能。更多信息 关于如何使用安全功能,请参阅如何确定应用程序 能力 那么,这到底意味着什么?例如,此代码: try { SomeInfo=SomeFunctionThatRequiresACapability(); } catch { //oh well, I guess we can't get th

我正在编写一段代码,试图从WindowsPhone8上的用户设备获取尽可能多的信息。我在认证指南中提到了这句话

如果你的应用程序试图访问它所访问的API,它可能会意外关闭 不具有可使用的安全功能。更多信息 关于如何使用安全功能,请参阅如何确定应用程序 能力

那么,这到底意味着什么?例如,此代码:

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

这可能证明吗?或者我需要先检查一下我们是否有能力

如果不添加这些功能,它将在运行时抛出异常。但是,它不会认证,因为XapValidation工具检查编译的代码,而不是xml文件中的功能列表。

Visual Studio(store test kit)附带的XapValidation工具检查编译的代码?我从来没有让它失败过,所以我认为它没有做太多的事情。根据我的经验,例外是web浏览器的功能。XapValidation可能会错过它,并将在没有该功能的情况下推送您的应用程序-导致在运行时引发异常。我通过在我的应用程序类上创建一个
WebBrowser
字段来解决这个问题。这不是真的。例如,根据我的经验,将地理定位服务与没有使用权限的应用程序一起使用可能会导致应用程序无限期挂起。不,我指的是内部XapValidation工具,我们不提供;-)当您测试代码时,这是不可能错过的。它不是随机的,有时不会抛出,你不会得到一个你没有要求的能力。所以不要加上try/catch,它是无用的。勾选功能或删除代码。@HansPassant这是一个库,其他人可以将其放入自己的手机应用程序中。我们真的想避免整个“如果你有这个能力就使用这个版本”类型的东西