我们有以下代码:
try
{
// some code throwing MyException
}
catch (MyException ex)
{
// [1]
// no (re)throw here
}
catch (Exception ex)
{
if (ex is MyException)
{
// [2]
}
}
如果我们在没有附加调试器的情况下运行代码,一切运行正常.但是,如果我们调试代码,我们不会指出[1]而是[2].据我了解语言规范,这是不可能的.
甚至更奇怪,这段代码甚至在调试时也运行良好.这种奇怪的行为仅在几天前才开始.
最佳答案 根据原始来源,可能与此问题有关:
Why can’t I catch a generic exception in C#?