抛出的一些异常如下:
throw new Exception( errMsg );
Run Code Online (Sandbox Code Playgroud)
... doest正在停止我的申请!
我的期望是当我扔任何前任. - 应立即停止应用程序.
但我注意到我的应用程序抛出一个前.一个接一个(特别是绑定时)而不是终止相同的时间
EDIT_1:
当它可以拦截时,我没有try-catch块
EDIT_2:
如上所述 - 这主要发生在绑定时.
例如,我有对象的getter检查用户的权限(GetValue方法) - 如果不引发异常.
我可以在调试器中看到它执行抛出新的Exception(...) 语句,但应用程序不会停止.我也注意到异常被抛出的次数与绑定集合中的许多项目一样多...
知道如何强制停止绑定并提升真正的异常吗?
示例代码来说明我在说什么
public string Name {
get { return GetValue( name, "Name"); }
}
Run Code Online (Sandbox Code Playgroud)
小智 6
未捕获的异常将导致您的应用程序终止.它的设计(至少在2.0发布后; 1.1有不同的行为,iirc).
他们称之为"快速失败".这个想法是,如果抛出了你没想到的异常(并因此捕获),你的应用程序就处于不稳定状态.在这一点上,它的崩溃比继续跛行更好.
绑定的行为方式不同,因为所有绑定操作(在WPF中)都旨在捕获所有异常,而不是删除应用程序.为什么他们做出这个决定是WPF团队必须要告诉你的.
归档时间: |
|
查看次数: |
2334 次 |
最近记录: |