Action
인라인으로 선언 된 매개 변수로를 전달할 때마다 예외가 발생할 때 올바른 행 번호를 얻지 못합니다. 예를 들어이 함수를 선언하면 :
public static void Do(Action action)
{
//do some things
action();
//do some things
}
그리고 다음과 같이 부릅니다.
Helper.Do(() => {
int x = 1;
x++;
x = x / 0;
x--;
});
반환되는 예외 Helper.Do(() => {
는 실제 오류가 발생한 줄을 알려주지 않는 줄 을 참조합니다 . 이 패턴을 사용하는 동안 올바른 줄 번호를 검색하는 방법이 있습니까?
귀하의 코드를 테스트했으며 Exception
발생한 정확한 줄 번호를 얻었습니다 . 이것은 내 테스트 코드입니다.
static void Main(string[] args)
{
try
{
Helper.Do(() => {
int x = 1;
x++;
x = x / 0;
x--;
});
}
catch (Exception e)
{
Console.WriteLine(e);
throw;
}
}
e.Message = "Attempted divide by zero"
e.StackTrace = at ConsoleApplication1.Program.<>c.<Main>b__1_0() in C:\test\ConsoleApplication1\ConsoleApplication1\Program.cs:line 46 at ConsoleApplication1.Helper.Do(Action action) in C:\test\test\ConsoleApplication1\ConsoleApplication1\Helper.cs:line 14 at ConsoleApplication1.Program.Main(String[] args) in C:\test\test\ConsoleApplication1\ConsoleApplication1\Program.cs:line 43
stacktrace의 46 번 줄은 x = x / 0;
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다