나는 이클립스를 사용 중이며 컴파일하기 전에 전처리 기가 현재 메소드의 이름으로 바뀌는 "매크로"를 원합니다.Java/Eclipse - 현재 메소드 이름을 지정하는 매크로?
오류보고 기능이 있습니다 : reportthis(String errormessage)
- 응용 프로그램 전체에서 오류가 발생하면 catch 블록에서 reportthis (...)를 호출하는 try/catch 블록이있는 여러 함수가 있습니다.
reportthis(MACRO_CURRENT_METHOD_NAME + ":" + e.ToString());
- 여기서 MACRO_CURRENT_METHOD_NAME
은 컴파일 전에 사전 처리되어 catch() 블록이 reportthis()를 호출하는 메소드의 이름이 될 것입니다.
그래서 catch() 블록이 main()에서 발생하면 매크로는 "main"(또는 "main()"등의 문자열을 반환해야합니다.
이것이 가능합니까? 내 목표를 달성하려면 어떻게해야합니까?
감사합니다.
편집 Eclipse에서 전 처리기로 처리하고 싶습니다. 아마도 "MACRO_CURRENT_METHOD_NAME"의 모든 항목을 현재 함수 이름으로 바꾸기 위해 eclipse 용 플러그인을 작성할 수 있습니까?
나는 블랙 베리 애플리케이션을 개발 중이다. stdout/err에 스택 트레이스를 출력하는 것이 도움이되지 않는다. - reportthis()는 디버그 모드에서 실행될 때 서버에 오류를보고 할 것이다. 'reportthis (main() : "+ e.ToString());'로 사용하면 모든 catch {} 블록에 대해 수동으로 수행하는 것보다 더 나은 방법을보고 싶습니다. – user2418661
그런 다음 예외를 reportthis()의 다른 대상에 인쇄하십시오.PrintStream을 사용하는 printStackTrace()의 서명이 있습니다. 상상력은 인쇄 할 수있는 한도입니다. 왜 스택 추적에서 자발적으로 모든 유용한 정보를 버릴까요? – Durandal
"PrintStream을 사용하는 printStackTrace()의 서명이 있습니까?"라는 의미는 무엇입니까? 내가 사용할 수있는 유일한 printStackTrace()는 stderr에 인쇄합니다 – user2418661