질문
Q #12511
Ajax에서 500 Internal Error발생시 php에러인지 db에러인지 구분할 방법이 있을까요?
cccaas
2015-09-16 22:24:49
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에러는 이런식으로 구분이 돼서 나오던데.. 다른 에러들도 요소별로 분리할 방법이 없을까요?
호랑이보다 무서운게 500 에러입니다.
하지만 보통 스크립트 라인에서 500에러는 안나옵니다.
비중이 높은건 php 이고 그 다음이 db 입니다.
db는 정상작동 했는지 체크가 가능 하니, 체크 코드를 먼저 넣는 방법이 있습니다.
[예외처리도 됩니다.]
php에러는 가장 좋은 방법은 ajax 리턴을 html, text 타입으로 받아서 먼저 확인 해 보시면 됩니다.
간혹 윈도우 서버의 경우 서버단에서 에러를 발생 하기도 합니다만 이건 정말 알기 어려운 형태입니다.
ajax 내에서 상태 코드와 판별은 ajax status 관련으로 검색 해 보시면 나옵니다.
다만 500 에러를 종류별로 나타내는 방법은 제공하지 않습니다.