블로그 이미지
Max.

calendar

    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31    

Notice

'DWR error hanler'에 해당되는 글 1

  1. 2008.03.26 DWR 기본 에러(error) 처리 변경하기
2008.03.26 14:37 이전글(~2009)
DWR은 기본으로 서버측과 전송결과 실패시 아래와 같은 function을 실행한다.

// engine.js 내부의 내용....

dwr.engine.defaultErrorHandler = function(message, ex) {
  dwr.engine._debug("Error: " + ex.name + ", " + ex.message, true);
  if (message == null || message == "") alert("A server error has occured.");
  // Ignore NS_ERROR_NOT_AVAILABLE if Mozilla is being narky
  else if (message.indexOf("0x80040111") != -1) dwr.engine._debug(message);
  else alert(message);
};


즉, alert() 을 실행하게 된다. 만약 메인화면에 많은 정보를 DWR을 써서 서버측에서 정보를 가져 올때 서버측 DB가 일시적인 장애가 발생한다면 어떤 현상이 일어날까? 아마도 alert()창으로 도배된 모습을 볼것이다. (사실 과거 프로젝트에서 그런것을 겪어봤다.)

해결방법은 간단하다.(의외로 이방법을 모르는 개발자들이 있어 적는다.) 여러가지 방법이 있겠지만 보통 2가지 방법을 많이 사용한다. 

하나는  setErrorHandler를 선언하여 헨들러는 넘겨주는 것이고, 

첫번째 방법

function showMessage(){
    alert('에러가 났습니다.');
}
function action1(data){
    DWREngine.setErrorHandler(showMessage);
    AjaxService.getServiceResult(model,ActionView);
}


다른 하나는 호출시점에 에러 헨들러를 선언해주는 것이다.

두번째 방법
function action1(data){
    DWREngine.setErrorHandler(showMessage);
    AjaxService.getServiceResult(
        model,
        {
            callback:ActionView,
            errorHandler:function(errorString, exception){
                alert('에러가 났습니다.');
            }
        }
        );
}

비슷하지만 에러처리를 위해 약간의 장단점이 잘 이용하면 좋을듯 하다.
신고

'이전글(~2009)' 카테고리의 다른 글

사람을 끌어들이는 힘  (0) 2008.04.04
경영과컴퓨터 잡지사  (4) 2008.04.03
DWR 기본 에러(error) 처리 변경하기  (0) 2008.03.26
4살짜리 생각에 맞추는 방법을 모르다.  (2) 2008.03.26
IWebMvc?  (0) 2008.03.26
잡생각 능력(?)을 밑천으로...  (0) 2008.03.26
posted by Max.
prev 1 next

티스토리 툴바