Asp.net 为什么这会导致出现Windows身份验证而不是异常?
好吧,在花了一天的时间调试了一段代码中的一个愚蠢的键入错误之后,我很好奇为什么会发生特定的操作而不是异常 首先是问题代码Asp.net 为什么这会导致出现Windows身份验证而不是异常?,asp.net,vb.net,Asp.net,Vb.net,好吧,在花了一天的时间调试了一段代码中的一个愚蠢的键入错误之后,我很好奇为什么会发生特定的操作而不是异常 首先是问题代码 Public Sub InstantiateIn(ByVal container As Control) Implements ITemplate.InstantiateIn Dim hl As New HyperLink AddHandler hl.DataBinding, AddressOf Me.BindData container.Contro
Public Sub InstantiateIn(ByVal container As Control) Implements ITemplate.InstantiateIn
Dim hl As New HyperLink
AddHandler hl.DataBinding, AddressOf Me.BindData
container.Controls.Add(container)
End Sub
明显的问题是,我们正在尝试将容器添加到自身中,这可能会导致异常。但是,它会导致页面提示用户输入其登录凭据(浏览器中的Windows身份验证)
有人知道为什么会出现这种情况,为什么没有发生异常或其他事情吗
编辑
出现此问题的原因是,由于此错误,该页面将变得无用,并提示Windows登录,并且不会出现堆栈溢出异常或任何其他异常。您希望异常发生在哪里?在这段代码中,没有理由生成异常。尽管在控件中嵌套控件可能不合逻辑,但它仍然有效。它不会很好地绘制,除非绘制/绘制层特别注意嵌套,否则可能会导致堆栈溢出/无限循环。但这不会发生在这里,而是在布局/绘制期间 控件可以任意嵌套;任何控件都可以有其他控件的集合(我相信原因很明显)。也就是说,将给定对象的引用添加到自身内的此类对象集合中并没有什么“错误”。虽然多余,但并不例外。对问题进行了澄清,可能是在布局/绘制期间,但最终结果是此代码未生成异常,但提示用户进行windows身份验证。对问题进行了澄清,可能是在布局/绘制期间,但是最终的结果是,这段代码没有生成异常,而是提示用户进行windows身份验证。@OP:如果你对任何有建设性的答案投赞成票,那没关系。但你可能需要等一段时间,同时取消投票。你的问题只显示在“无动力”视图中,而没有经过投票的回答,而且很多人都遵循这个视图。@Joel不,没有我的投票……我可能不得不放弃这个。