나의질문답

항상 코딩할때 잘 보아야 할건 에러 내용

예쁜꽃이피었으면 2014. 7. 29. 23:43

java.lang.NullPointerException

가장 많이 보게 되는 에러 중 하나!
NullPointerException

이 에러는 실제 보물상자가  없고 이름만 있는 것인데,
그 속에서 뭔가 값을 꺼내려고 할때 발생하는 가장 대표적인 에러!

그래서 해당 에러를 발생시키지 않으려고 코딩할때 많은 예외처리를 해

대표적으로~


request.getParameter("good_name") == null ? "" : request.getParameter("good_name");

이 소스 부분도 널인 경우에는 "" 공백 문자열로 대체 하라는 내용이야
널포인터 익셥센이 안 생기도록~

 

 

그럼 다시 네가 추가한 부분으로 돌아가서 왜 해당 에러가 나는지 보자!

그리고 이클립스는 툴이 좋아서 콘솔에서 에러 발생 시, 바로 그 위치로 찾아갈수가 있어

ctrl을 누른 상태에서 해당 에러메세지 부분을 클릭하면 돼

 

om.getOrder_num() 여기서 널이라는 이야기이고,
그럼 오엠 이라는 변수에는 어떤 객체를 담았는지 위에서 함 찾아보자

================= order_pk_num[]
================= om[null]

헉 보다시피 해당 om 이라는 객체가 널이고 그 원인은
쿼리를 수행할때 조건으로 넘기는 order_pk_num 자체가 값이 없는게 원인이었네~
이해돼?
그럼 order_pk_num을 또 어디서 가져와야 하나요?

ㅋㅋㅋ 잘~ 가져와야지 ㅋㅋㅋ
자 그럼 또 순서대로 함 보자구~


헉 소스상에서

 String order_pk_num = "";

이렇게 정의만 해두고 값을 넣는부분이 전혀 없네 ㅜㅜ
아..

 

//결제성공 이후 처리 : 아래 로직은 PAYAPP 에서 response 받는 소스인 payappres.jsp 에서 처리해도 됨
           // 기존의 orderTransactionBymobileDao.java / orderTransactionDao.java 파일의  insertOrder() 메소드의 로직을 참고하여  orderTransactionTotlaDao.java 파일을 새로 만들어 처리.
       
        //order_pk_num = orderTransactionBymobileDao.getInstance().insertOrder(request);
           //order_pk_num = orderTransactionDao.getInstance().insertOrder(request);


이 부분 내가 지난번에 주석으로 막아놓은 부분 이네~
여기서 해당 값을 조회해서 가져와야해
자 한번 보자


헉~ 제일 위에서 해당 페이지 호출하는 페이지에서 넘겨주는 값을 받고 있네~ ^^ 


자 보다시피 오더 테이블에 있는 값 중에 우리가 필요한 키 값을 임의로 넣어서 해보니 널 에러 안나고 해당 값 다 가지고 오지?
네네

그럼 남은 일은 바로!


order_pk_num 값만 어디선가 제대로 가져오면 끝~ 

판매할 책 정보는 기존 책 마스터 테이블에 그 정보가 있겠지만

실제로 주문한 정보는 어디에 있을까?
오더 마스터
오더 디테일

바로 그 테이블에 있겠지~

그럼 그 테이블에 해당 주문 정보를 넣는 시점은 언제일까?
주문이 완료..
그렇지!!!!!!!!!! 바로 주문이 완료된 후에 넣겠지?
아..전에는 결제를하고 나왔던 페이지라 보였던거고
지금은 그게 아니고 결제버튼만 누른거라 안보이는거예요?


바로 그거야~~~~~~~~~~~~ 즉~~~ 지금 우리가 수정하는 소스에서 패이앱결재 요청후에
정상으로 응답이 오면 바로 우리가 해당 주문 테이블에 데이터를 넣어야 하는거지!!!

 

 

코딩을 위해 문법을 아는것도 중요하지만 그보다 더 중요한건~
첫째! 개발자가 개발하는 프로그램의 전체 흐름~
둘째! 논리적인 순서도와 연관관계 흐름을 이해하는 것

이것이 되야 개발로직을 제대로 구현할 수 있는거야~ 

반응형

'나의질문답' 카테고리의 다른 글

request.setAttribute  (0) 2014.07.29
ArrayList  (0) 2014.07.29
set함수 , add함수  (0) 2014.07.29
ArrayList  (0) 2014.07.29
공백에러 , nextToken();  (0) 2014.07.29