我得到的异常堆栈跟踪是:
/* snip */
at SomeSystemMethod()
at Namespace.Adapters.ListAdapterBase`1.GetObjects(String where)
at Namespace.Processes.MyProcess.Run()
/* snip */
这似乎在第二行之后缺少了一些东西,因为 ListAdapterBase 是抽象的,并且方法 GetObjects 不是直接调用的,而是由子类的另一个方法调用的:
public class ActualStateList : ListAdapterBase<ActualState>
{
/* snip */
public List<ActualState> GetByUserId(int userId)
{
return GetObjects(string.Format(
WHERECLAUSE_BYUSERID, userId));
}
/* snip */
}
所以我的第一个问题是,Stacktrace 中怎么可能没有调用ActualStateList.GetByUserId()
或其他子类或方法?
其次:该Run()
方法使用了 ListAdapterBase 的 4 个子类,我能以某种方式找出异常发生在哪个子类中吗?ListAdapterBase 后面的数字是否以某种方式精确地导致了其中一个子类?