gpt4 book ai didi

c# - .Net Winforms 中未捕获设计时异常

转载 作者:太空宇宙 更新时间:2023-11-03 16:51:24 24 4
gpt4 key购买 nike

我有一个在设计时用于配置各种属性的表单。
我尝试了两种方法来进行表单级捕获所有异常:

(1) 我在构造函数中为 Application.ThreadException 添加了一个处理程序。
(2) 我将表单的 Show 方法包装在 Try/Catch block 中

当我通过向表单添加属性网格并将我的组件设置为 SelectedObject 进行测试时,这两种方法都在运行时起作用。

然而,在设计时,表单只是简单地关闭而没有任何消息;无论是我的消息还是任何解释存在未处理异常的消息。

有什么想法吗?

预计到达时间:这与设计时调试无关。它是关于当我的类型编辑器遇到未处理的异常时如何向用户显示友好消息。

最佳答案

从技术上讲,您在设计时没有 Application 对象,并且它不会像您那样调用 Show() 方法。捕获异常的最佳方法是围绕设计人员在加载时遇到问题的有问题的方法或属性使用 try/catch 并抛出异常。

只是为了测试,继续向您的表单添加一个虚拟属性,称为 IamGoingToThrowAnException,并在该属性的 getter 中执行 throw new System.Exception("Caught me在设计模式下"),如下:

public string IamGoingToThrowAnException 
{
get
{
throw new System.Exception("Caught me in design mode.");
}
}

同样的事情适用于通过 InitializeComponents 方法或表单的构造函数初始化的任何方法或属性。

关于c# - .Net Winforms 中未捕获设计时异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3858201/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com