方法调用:
//
//
string str = Regex.Replace("Hello", null, "");
//
//
public static class MyRegex
{
public static string MyReplace(string input, string pattern, string replacement)
{
if (pattern == null)
{
throw new Exception("Pattern must not be null.");
}
else
{
return Regex.Replace(input, pattern, replacement);
}
}
}
方法调用:
//
//
string str = MyRegex.MyReplace("Hello", null, "");
//
//
答案 0 :(得分:2)
显示的行是调用堆栈中可获得源代码的最低点。
您在Regex.Replace
中看不到任何代码,因此它仅向您显示代码中您调用它的那一行。
但是由于throw new Exception()
是您的代码,因此它就是显示的内容。
如果您构建了一个DLL并将其用于另一个项目(并且未复制.pdb文件),则其行为与您的Regex.Replace
示例相同,因为新项目看不到源代码DLL中的代码。
但是,如果您复制.pdb文件并在DLL源代码所在的同一台计算机上运行新项目,则Visual Studio 可以知道在哪里可以找到源代码,并且它仍然会向您显示DLL代码中的异常。 (至少,我知道Visual Studio会以这种方式运行-我不确定ASP.NET是否会将其显示在浏览器中)