CI 묻고 답하기

제목 Ajax에서 500 Internal Error발생시 php에러인지 db에러인지 구분할 방법이 있을까요?
글쓴이 cccaas 작성시각 2015/09/16 21:54:49
댓글 : 3 추천 : 0 스크랩 : 0 조회수 : 22248   RSS
Ajax에서 500 Internal Error발생시 php에러인지 db에러인지 general에러인지 구분할 방법이 있을까요?

에러에 따라서 error페이지의 error_db.php가 불려지던지 error_general.php가 불려지던지 구분을 하는 것을 보니 codeigniter에서는 인지를 하는것 같은데 

그걸 ajax 반환값에서 캐치해 낼 수 있는 방법이 있을까요?
어떤 종류의 에러인지에 따라서 출력을 다르게 해 주고 싶습니다.

에러 코드는 다 500으로 와 버리던데..

request.fail(function(jqXHR, textStatus ) {
        console.log(jqXHR);
});

을 출력 해 보면 꽤나 많은 정보들이 출력 되던데.. 이 반환값으로 구분을 할 수는 없을까요?

그렇게 안된다면 에러 내용을 array나 object으로 구현하고 싶은데.. 어떤 에러, 예를들면 DB에러가 출력될때 보면 <p>태그로 구분되서 에러 라인, 에러 위치, 에러 내용 들이 나오더라구요.

Severity: <?php echo $severity; ?>
Message:  <?php echo $message; ?>
Filename: <?php echo $filepath; ?>
Line Number: <?php echo $line; ?>

PHP에러는 이런식으로 구분이 돼서 나오던데.. 다른 에러들도 요소별로 분리할 방법이 없을까요?
 다음글 가비아 호스팅 관련 (5)
 이전글 어느순간부터 소스 수정이 로컬에 바로 반영이 안되고 쿠... (2)

댓글

kaido / 2015/09/17 09:23:45 / 추천 0
500 에러는 무엇이다 라고 단정 짓지 못합니다.
호랑이보다 무서운게 500 에러입니다.

하지만 보통 스크립트 라인에서 500에러는 안나옵니다.
비중이 높은건 php 이고 그 다음이 db 입니다.

db는 정상작동 했는지 체크가 가능 하니, 체크 코드를 먼저 넣는 방법이 있습니다.
[예외처리도 됩니다.]

php에러는 가장 좋은 방법은 ajax 리턴을 html, text 타입으로 받아서 먼저 확인 해 보시면 됩니다.

간혹 윈도우 서버의 경우 서버단에서 에러를 발생 하기도 합니다만 이건 정말 알기 어려운 형태입니다.

ajax 내에서 상태 코드와 판별은 ajax status 관련으로 검색 해 보시면 나옵니다.
다만 500 에러를 종류별로 나타내는 방법은 제공하지 않습니다.
들국화 / 2015/09/17 13:26:49 / 추천 0
에러상세내용을 밖으로 드러내는건 좋은생각이 아닌듯 합니다.
저라면 exception을 정의하고 파일로 떨구가나 할것 같네요.
exception이 나면 디비에 넣거나 해서 ajax에서 불러 올수도 있을것 같네요. 디비 보다는 file log가 더 좋은 형태고요.
변종원(웅파) / 2015/09/17 16:24:35 / 추천 0
ajax로 처리시 php로 500 에러 떨어지는 건 못 본거 같네요.
99% db 에러입니다.