본문으로 건너뛰기

익셉션에서 메세지

public class Exercise1 {

public static void main(String arg[]) {

try {
/* int로 형변환이 안되는 문자열을 넣어 강제로 Exception 발생 */
String product = "사과";
int productCnt = Integer.valueOf(product);
} catch (Exception e) {
System.out.println(e.getMessage());
System.out.println(e.toString());
e.printStackTrace();
}
}
}

e.getMessage() -> 이렇게 간단하게 나온다 For input string: "사과"
e.toString() -> 이렇게 에러내용을 보여주지만 어디서 발생했는지는 모른다. java.lang.NumberFormatException: For input string: "사과"
e.printStackTrace() -> 자세하게 어디서 발생했는지도 보여준다.

For input string: "사과"
java.lang.NumberFormatException: For input string: "사과"
java.lang.NumberFormatException: For input string: "사과"
at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:67)
at java.base/java.lang.Integer.parseInt(Integer.java:668)
at java.base/java.lang.Integer.valueOf(Integer.java:999)
at com.home.junit5test.Exercise1.main(Exercise1.java:10)

로그와 함께 물려서 쓸때는 요렇게 ..

private static final Logger log = LoggerFactory.getLogger(JdbcTemplate.class);

public void update(String query) {
try {
// ...
} catch (SQLException e) {
log.error("Fail update :", e);
}
}