2012-04-19 5 views
0

오류 해결을 위해 제공 한 코드로 작업하고 있지만 지금까지 throw 된 예외는 나를오류가있는 곳을 표시하지 않는 java.lang.NullPointerException

행으로 보냅니다.
log.error("Error saving data: " + e.toString()); 

입니다. e.printStackTrace()가 아무 것도 출력하지 않기 때문에 올바른 행을 찾는 방법을 모르겠습니다. 함수는 다음과 같은 부분을 가지고 있습니다 :

protected void processRequest(HttpServletRequest request, HttpServletResponse response) 
     throws ServletException, IOException {... 

try {... 
} catch (Exception e) { 

     e.printStackTrace(); 
     log.error("Error al almacenar los datos de usuario: " + e.toString()); 
    } 

하지만 중간에 예외에 대한 참조를 찾을 수 없습니다. 오류가있는 곳을 알려주는 "catch"부분을 어떻게 얻을 수 있습니까?

+0

스택 추적은 무엇을 말하는가 :

또한, zaga250 말한대로 로거를 사용하여 예외를 로그인 할 수 있습니까? – Dan

+5

* "e.printStackTrace()는 아무 것도 출력하지 않습니다."* 나는 *** 매우 *** 믿기 힘듭니다. –

+0

예외가 발생하는 메소드 코드를 제공하십시오. – Shehzad

답변

5

예외 stackTrace를 로거에 전달해야합니다. 당신이 e.printStackTrace를 입력하면()는,

적절한 방법이 무엇인가를 작성하는 것입니다 System.err에

log.error ("메시지", e)를 스택 추적을 넣습니다;

그리고 log4j는 객체 e를 처리하고 로거에 stackTrace를 인쇄합니다.

+0

정말 고마워요. 사람들이 실제로 귀하의 질문에 대답하고 "나는 그 것을 매우 열심히 찾는다"고 지적하지 않는 것이 좋습니다. 감사합니다. 감사합니다. – Stefano

0

잘못된 장소를 찾고 있습니다.

stacktrace는 표준 오류가 발생하는 파일에 기록됩니다.

당신은 어떤 AS를 사용하고 있는지는 말하지 않지만 대부분은 어떤 종류의 stderr.out 파일을 가지고 있습니다.

log.error("errrr", e); 
관련 문제