try {
// some code
} catch (Exception e) {
e.printStackTrace();
}
우리는 위와 같이 printStackTrace
메소드를 자주 사용해왔을 것입니다. 그런데 printStackTrace()
는 사용을 지양해야 하는 메소드입니다. 그 이유에 대해서 간단하게 알아보겠습니다.
내부 메소드를 보면 System.err
를 사용하고 있습니다. System.out.println()을 사용하면 안되는 이유 에서 간단하게 정리를 한 적이 있는데요.
System.err
보다는 logger
를 이용하는 것을 지향합니다. 그 이유는 위의 글을 읽고오면 됩니다. 즉, 내부적으로 System.err
를 사용하고 있기 때문에 지양해야 하는 메소드입니다.
try {
// some code
} catch (Exception e) {
logger.log("Context message", e);
}
따라서 위와 같이 사용하는 것이 좋습니다.
- printStackTrace를 사용하면 예외 발생 위치가 정확하게 드러나기 때문에 보안에 위협이 될 수 있습니다.