테스트 사이트 - 개발 중인 베타 버전입니다

sql exception 처리 채택완료

훈련소장 7년 전 조회 2,150

</p>

<p>try {</p>

<p>  $res = sql_fetch("SELEfCT * FROM category where category_id = 1234) ; </p>

<p>  $res['status'] = 'ok';</p>

<p>}</p>

<p>catch(Exception $e) {</p>

<p>   $res['status'] = $e->getMessage();</p>

<p>}</p>

<p>echo json_encode($res);</p>

<p>

 

에러처리를 하고 싶은데, 일부러 select --> selecfct 문법 오류를 내었는데

 

try catch 가 안되고, 오류가 나네요..

에러처리를 하고 오류메시지를 보이고 싶은데 어떻게 하나요

댓글을 작성하려면 로그인이 필요합니다.

답변 1개

플래토
7년 전

위 문장에서 조건에 해당되는 내용이 없는경우에는

$res에는 null 이 존재하게 됩니다.

그런경우에

$res['status'] 에 강제로 값을 대입하면

Exception 자체도 오류가 날겁니다.

 

값이 존재하는지 

is_array() 으로 배열인지 체크하신후에

대입하실지

선언후 대입하실지 정하셔야 할것 같습니다.

 

* 배열인지 체크

   is_array() : http://php.net/manual/kr/function.is-array.php

 

* 배열의값이 있는지 체크

   in_array() : http://php.net/manual/kr/function.in-array.php

로그인 후 평가할 수 있습니다

답변에 대한 댓글 5개

훈련소장
7년 전
귀한 답변 감사합니다. 그런데 $res['status'] = 'ok'
이문장을 아예 뺏는데, exception 처리가 안되네요..
훈련소장
7년 전
sql 결과가 내용이 없는게 아니라 문법오류를 내고 그 에러를 try catch로 잡고 싶은건데 방법이 좀 틀린것 같아요..
플래토
7년 전
@훈련소장
제가 볼때는
Exception자체가 오류입니다.
Exception 내에서
$res['status'] 가 배열도 아닌지를 체크하셔야 할것같습니다.
훈련소장
7년 전
try
{
$res = sql_fetch("SELEfCT * FROM category where category_id = 1234;

}
catch(Exception $e)
{

}

echo json_encode($res);

이렇게 바꿨습니다.. 에러가 sql에서 나는걸 catch 하고 싶은데 그게 catch가 안되고 그냥 에러가 나요
플래토
7년 전
@훈련소장

Exception은 처리중에 오류가 발생하느 사항으로 알고있습니다만

아래 문장은 문법오류라서 에러가 나는게 맞지 않을까요?

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인