c# - 捕获插件 UserControl 抛出的异常

标签 c# winforms exception plugins user-controls

我正在编写一个 WinForms 应用程序,它以插件(想想小部件)的形式接受动态用户界面控件。为此,每个插件的主要功能都会返回一个 UserControl,然后将其添加到主窗体。

由于我的应用程序无法直接控制它们,所以我想以异常方式“沙盒”插件,这样如果其中一个 UserControl 抛出错误,我可以捕获它并卸载罪魁祸首。明显的问题是 UserControls 是事件驱动的,可以在一百万个不同的地方抛出异常,所以我没有任何东西可以包装在 try/catch block 中。

我如何捕获动态 UserControl 抛出的异常,或者对于这样的模块化应用程序,什么是更好的设计?

最佳答案

通过简单地调用插件实现并在每个调用周围添加您的 try catch 逻辑,将您的 UserControl 封装在一个实现您的插件接口(interface)的对象中。

关于c# - 捕获插件 UserControl 抛出的异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/442273/

相关文章:

c# - Visual Studio 2015 中的 ASP.NET Core MVC 2.0

android - ImageView 导致 android.graphics.Canvas.throwIfRecycled 异常

c# - UWP 项目 TreeView 类不存在

c# - 在datagridview中如何使用复选框作为单选按钮?

windows - 使用 CreateWindow 并向其添加按钮等?如何?

c# - 使用拖放重新排序 winforms 列表框?

java - 如何避免使用异常进行流量控制?

java:记录抛出的异常

c# - Memcached .Net 客户端 BufferedStream 错误

c# - 我应该创建很多 PropertyChangedEventHandler 还是测试 PropertyChangedEventArgs?