我正在使用消息过滤器来控制winform应用程序中的授权。我的(简化)代码是这样的:
public bool PreFilterMessage(ref Message m)
{
if(IsAllowed())
return true;
throw new UnauthorizedAccessException();
}
但是在抛出异常后,同样的消息不断回来,导致无限循环。
是否可以在PreFilterMessage中抛出异常?
答案 0 :(得分:-1)
PreFilterMessage捕获所有发生的事件,这可能包括当您关闭抛出异常时触发的事件。
因此,您的PreFilterMessage要么返回true(因此事件被忽略),要么抛出异常。这看起来不像预期的行为。