我有一段代码如下所示:
try
{
classVar = functionCall(input, sEnum.First);
classVar = functionCall(input, sEnum.Second);
classVar = functionCall(input, sEnum.Third);
}
catch (Exception ex)
{
Debug.Assert(false, ex.ToString());
}
但是,我的异常没有显示它来自哪个特定调用。堆栈跟踪也只显示从函数调用内部调用的另一个类的详细信息。
包装它的另一种方法是:
try
{
classVar = functionCall(input, sEnum.First);
}
catch (Exception ex)
{
Debug.Assert(false, ex.ToString());
}
try
{
classVar = functionCall(input, sEnum.Second);
}
catch (Exception ex)
{
Debug.Assert(false, ex.ToString());
}
try
{
classVar = functionCall(input, sEnum.Thrid);
}
catch (Exception ex)
{
Debug.Assert(false, ex.ToString());
}
虽然我认为它的可读性比以前的版本要低得多。
是否有包装函数调用或传递异常的模式,以便我以后可以在保持代码可读性的同时看到它们的来源?