代码之家  ›  专栏  ›  技术社区  ›  Amit Joshi

是否可以抛出自定义的不可捕获异常?

  •  0
  • Amit Joshi  · 技术社区  · 9 年前

    我正在为多个应用程序编写许可证模块(DLL)。此DLL将通过添加引用在应用程序中使用。此DLL的一个要求(通过情况)是,如果许可证验证失败,调用应用程序应终止/崩溃。它 不应该 优雅关闭;它一定是坠毁了。我不想显示消息、写日志等。

    DLL和应用程序(使用此DLL)是在DotNet 4中编写的。

    我能想到的快速解决方案是抛出异常,而不是从方法返回值。但是,异常可能会被应用程序捕获,并且无法完全满足目的。

    解决方法是将自定义异常声明为 internal 在我的动态链接库中。但是,这也可以通过捕捉来绕过 Exception 班

    我能想到的一个肮脏的替代方法是编写一个代码(无休止的递归或其他东西),该代码将抛出 StackOverflowException .但我在找更好的。

    是否有任何方法可以抛出自定义的不可捕获异常?

    参考文献:

    Ref1 和 Ref2 讨论内置DotNet不可捕获异常。我的问题是关于自定义不可捕获异常。

    1 回复  |  直到 6 年前
        1
  •  1
  •   Community Mohan Dere    9 年前

    Environment.FailFast 就这样,没有什么可以阻止您的应用程序关闭。

    请记住,C#库可以很容易地更改和重新编译,因此您可能还需要考虑使用 obfuscators 也