문제

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.Object 그리고 전화 ToString 곧장.

다른 팁

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

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()
  catch (Exception ex)
{
    Console.WriteLine(ex.StackTrace);
}

Java의 Log4J와 같이 인수로서 예외를 취하고 모든 것을 처리 할 수있는 C# Logging API가 없습니까?

즉, log4net을 사용하십시오.

또한 log4n의 포트로 log4n을 봅니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top