your programing

Java의 Exception.printStackTrace ()에 해당하는 C #?

lovepro 2020. 10. 13. 08:19
반응형

Java의 Exception.printStackTrace ()에 해당하는 C #?


Java와 동일한 C # 메서드가 Exception.printStackTrace()있습니까? 아니면 InnerExceptions를 통해 작업하면서 직접 작성해야합니까?


이 시도:

Console.WriteLine(ex.ToString());

에서 http://msdn.microsoft.com/en-us/library/system.exception.tostring.aspx :

ToString의 기본 구현은 현재 예외를 발생시킨 클래스의 이름, 메시지, 내부 예외에서 ToString을 호출 한 결과, Environment.StackTrace를 호출 한 결과를 가져옵니다. 이러한 멤버 중 하나라도 null이면 해당 값이 반환 된 문자열에 포함되지 않습니다.

위의 코드에서는 직접 받아 호출 ToString하는 오버로드가 있으므로 호출 이 필요하지 않습니다 .System.ObjectToString


추가하고 싶습니다 : 예외 외부에 스택을 인쇄하려면 다음을 사용할 수 있습니다.

Console.WriteLine(System.Environment.StackTrace);

Drew가 말했듯이 예외를 문자열로 변환하면됩니다. 예를 들어,이 프로그램은 :

using System;

class Test
{
    static void Main()
    {
        try
        {
            ThrowException();
        }
        catch (Exception e)
        {
            Console.WriteLine(e);
        }
    }

    static void ThrowException()
    {

        try
        {
            ThrowException2();
        }
        catch (Exception e)
        {
            throw new Exception("Outer", e);
        }
    }

    static void ThrowException2()
    {
        throw new Exception("Inner");
    }
}

다음 출력을 생성합니다.

System.Exception: Outer ---> System.Exception: Inner
   at Test.ThrowException2()
   at Test.ThrowException()
   --- End of inner exception stack trace ---
   at Test.ThrowException()
   at Test.Main()

http://msdn.microsoft.com/en-us/library/system.exception.stacktrace.aspx

Console.WriteLine (myException.StackTrace);


  catch (Exception ex)
{
    Console.WriteLine(ex.StackTrace);
}

Java의 Log4J처럼 예외를 인수로 받아 모든 것을 처리 할 수있는 C # 로깅 API가 없습니까?

즉, Log4NET을 사용하십시오.


또한 Log4Net을보십시오. Log4J에서 .NET으로의 포트입니다.

참고 URL : https://stackoverflow.com/questions/333953/c-sharp-equivalent-to-javas-exception-printstacktrace

반응형