- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我在 ClickOnce 部署的应用程序中依赖于 .NET 2.0 SP2(ApplicationDeployment.CurrentDeployment.CheckForDetailedUpdate(false)
方法仅限 SP2)。
我想检查应用程序启动期间是否存在 SP2。我试图通过在调用仅限 SP2 的方法后捕获 MissingMethodException 来检测这一点。
/// <summary>
/// The SP2 bootstrapper does not allow HomeSite installation
/// http://msdn.microsoft.com/en-us/vstudio/bb898654.aspx
/// So we only advice the user to download .NET 2.0 SP2 manually.
/// </summary>
private void CheckDotNet2SP()
{
WaitHandle wh = new AutoResetEvent(true);
try
{
wh.WaitOne(1); //this method is .NET 2.0 SP2 only
}
//NOTE: this catch does not catch the MissingMethodException
catch (Exception) //change to catch(MissingMethodException) does not help
{
//report that .NET 2.0 SP2 is missing
}
finally
{
wh.Close();
}
}
在没有 SP2 的 .NET 2.0 上运行时,catch 中的代码永远不会执行。该异常仅由 AppDomain.CurrentDomain.UnhandledException
事件处理程序捕获。
怎么可能没有捕获到 MissingMethodException?我可以想象这是一个特例 - CLR 遇到了一个不存在的方法,并且无法以某种方式将其传递给 catch block 。我想了解这背后的原理。
有人有关于这个问题的任何资源吗?是否还有其他无法在 catch block 中捕获的异常?
最佳答案
我怀疑它发生在 JIT 时间,甚至在正确输入方法之前 - 即在您的 catch block 被命中之前。如果您在调用 方法中捕捉到MissingMethodException
,这可能会解决问题...特别是如果您装饰CheckDotNet2SP
与 MethodImpl[MethodImplOptions.NoInlining]
。不过,这听起来仍然很冒险。
您始终可以通过反射检查方法是否存在,而不是尝试调用它。
关于c# - 为什么无法捕获 MissingMethodException?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3546580/
当我在一台机器上启动我的应用程序时,它立即退出说它已经“停止工作”。在事件日志中,我看到 MissingMethodException 是原因。没有显示异常对话框,并且在事件日志详细信息中我看不到任何
我正在使用 FsUnit 2.1(带有 NUnit 3.2)为 F# 项目编写测试。这是一个简单的模块: namespace Library1 module LibraryFunctions =
我正在使用 Grails in Action 中的一个示例,特别是第一次实现服务并将工作从 Controller 转移到服务。 我有一个包含用户和字符串内容的 Post 对象。 服务代码是 class
我正在通过反射创建一个程序集。当我尝试运行我的应用程序时,我得到一个 MissingMethodExeption: // public static bool berekenQueen
为什么我会得到这个异常?代码不一样但接近“演示”https://gist.github.com/1599013 异常:MissingMethodException 说明: Method not fou
当加载我的 MainPage 时,Visual Studio 进入中断模式并出现以下错误 System.MissingMethodException: Default constructor not
我已经为 Json.Net 编写了一个小型异步库包装器来自 NuGet 的 v5.06,在更新了一些 Telerik 包之后,我的 UnitTests 开始失败并显示 MissingMethodExc
当使用脚本 OnBase 从第三方应用程序调用公司库中的方法时,我收到 MissingMethodException(引用特定方法)。调用该方法的对象已经存在,并在此之前成功进行其他调用。 我已经确认
我有一些看起来像类似规范的东西: def "my spec"(Record record) { given: Something something = getSomethin
我正在尝试从我的控制台应用程序调用一个 dll 类。我试图从 dll 调用的所有类都有参数化构造函数。我希望将 user 和作为两个参数传递给我试图调用的任何类。我知道我调用这些方法的方式有问题,但无
我在 ClickOnce 部署的应用程序中依赖于 .NET 2.0 SP2(ApplicationDeployment.CurrentDeployment.CheckForDetailedUpdate
我正在通过反射创建程序集,然后使用它来创建 WCF 服务客户端的实例。 object obj = assembly.CreateInstance( serviceName, tru
我在面对 getThingsDone() is applicable for argument types: () values: [] 错误代码如下, in shared library ....
我在 c# 项目中从 Database SqlCe 生成 EF 模型时遇到问题。这是一个新错误,因为多年来我已经更新了很多次。我尝试了很多方法来解决它,也在网上研究,但没有什么能帮助我解决。我还将 N
嗨,我正在尝试使用 JQUery 调用一个 url,并附加参数。参数值来自页面对话框中的文本字段。当我调用参数中没有填充任何值的 url(即 if 中的 url)时,它执行得很好,但是当我在对话框中输
我有一个简单的域 class Cat { String name static constraints = { } } Controller 如下: class CatCont
我试图让 SQLite 在本地存储一些信息,现在我遇到了一个恼人的问题:每当我调用 sqlite 函数 CreateTable 时,它都会返回一个异常。 这是一个异常(exception): Un
我有一个 WPF 应用程序,其表单在启动时会在新线程中调用自定义方法。 Private Sub TestStep1_Loaded(ByVal sender As Object, ByVal e As
当我调用 GetExportedTypes 时,我得到了一个 MissingMethodException,代码: Assembly.LoadFrom(assemblyPath).GetExporte
我知道,通常情况下,Mono 中的 MissingMethodException 意味着您引用的框架的一部分未在 Mono 中实现,即使它在 Microsoft .NET 框架中可用。但是,在这种情况
我是一名优秀的程序员,十分优秀!