是否可以抛出CUSTOM不可捕获的异常?

时间:2017-01-31 11:55:28

标签: c# exception dll try-catch

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

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

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

解决方法是在我的DLL中将自定义异常声明为internal。但是,这也可以通过捕获Exception类来绕过。

我能想到的一个肮脏的选择是编写一个代码(无限递归或其他东西),它将抛出StackOverflowException。但我正在寻找更好的东西。

有没有办法抛出自定义的非捕获异常?

的参考文献:

Ref1Ref2讨论了构建的DotNet不可捕获异常。我的问题是关于自定义不可捕获的异常。

1 个答案:

答案 0 :(得分:2)

Environment.FailFast是要走的路,没有任何东西可以阻止你的应用程序关闭。

请记住,C#库可以轻松更改和重新编译,因此您可能也希望使用obfuscators