PHP 17강. 예외 처리(Exception Handling)
1. 예외(Exception)란?
예외(Exception)는 프로그램 실행 중 발생하는 오류 상황입니다.
예를 들어
데이터베이스 연결 실패
존재하지 않는 파일
잘못된 입력값
업로드 실패
등이 모두 예외입니다.
2. 왜 예외 처리가 필요할까?
예외 처리가 없으면
DB 연결 실패
↓
프로그램 종료
예외 처리가 있으면
DB 연결 실패
↓
오류 메시지 출력
↓
프로그램 안전 종료
사용자에게 적절한 안내를 제공할 수 있습니다.
3. try ~ catch
기본 문법
<?php
try{
echo "정상 실행";
}catch(Exception $e){
echo "오류 발생";
}
?>
4. Exception 발생시키기
<?php
try{
throw new Exception("오류가 발생했습니다.");
}catch(Exception $e){
echo $e->getMessage();
}
결과
오류가 발생했습니다.
5. PDO와 예외 처리
<?php
try{
$pdo = new PDO($dsn, $user, $password);
}catch(PDOException $e){
echo "DB 연결 실패";
}
실무에서는 DB 연결 시 거의 항상 사용합니다.
6. 오류 메시지 확인
<?php
try{
throw new Exception("예약 실패");
}catch(Exception $e){
echo $e->getMessage();
}
결과
예약 실패
7. 동부산CC 예제
예약 저장
예약하기
↓
DB 저장
↓
성공
또는
실패
실패해도 프로그램이 비정상 종료되지 않습니다.
8. finally
예외 발생 여부와 관계없이 항상 실행됩니다.
<?php
try{
echo "예약 처리";
}catch(Exception $e){
echo "오류";
}finally{
echo "처리 완료";
}
9. 파일 업로드 예외
<?php
if(
!move_uploaded_file($tmp, $path)
){
throw new Exception("업로드 실패");
}
10. 로그인 예외
<?php
if(
empty($_POST["userid"])
){
throw new Exception("아이디를 입력하세요.");
}
11. 예약 인원 검사
<?php
if($players < 1){
throw new Exception("예약 인원이 올바르지 않습니다.");
}
12. React와 비교
React
try{
await axios.get(...);
}catch(error){
console.log(error);
}
PHP
try{
// PHP 코드
}catch(Exception $e){
echo $e->getMessage();
}
문법은 다르지만 오류를 잡는 개념은 같습니다.
13. 실무 예제
<?php
try{
$greenFee = 180000;
if($greenFee < 0){
throw new Exception("금액 오류");
}
echo "예약 완료";
}catch(Exception $e){
echo $e->getMessage();
}
14. 로그 기록
실무에서는 사용자에게 상세 오류를 보여주기보다
화면에는 "처리 중 문제가 발생했습니다."
서버 로그에는 실제 오류 내용
을 남기는 경우가 많습니다.
15. 예외 처리가 필요한 기능
✔ DB 연결
✔ 로그인
✔ 회원가입
✔ 예약 저장
✔ 파일 업로드
✔ 결제
16. 사용자 메시지
좋은 예
예약 처리 중 문제가 발생했습니다.
잠시 후 다시 시도해 주세요.
나쁜 예
PDOException ...
SQL 오류 ...
내부 오류 정보를 그대로 노출하지 않는 것이 좋습니다.
17. 동부산CC 적용
예약
↓
예외 처리
↓
성공
↓
예약 완료
또는
실패
↓
안내 메시지
18. 실습 과제
다음을 구현해 보세요.
이름이 비어 있으면 예외 발생
예약 인원이 1명 미만이면 예외 발생
파일 업로드 실패 시 예외 발생
그리고 각각 다른 오류 메시지를 출력해 보세요.
19. 실무 팁
✔ try 안에는 실행 코드 작성
✔ catch에서는 오류 처리
✔ finally는 정리 작업
✔ 사용자에게는 친절한 안내 메시지 제공
20. 정리
예외 처리는 프로그램 실행 중 발생하는 오류를 안전하게 처리하는 방법입니다.
PHP에서는 try, catch, finally를 사용하여 오류를 처리하며, throw를 이용해 직접 예외를 발생시킬 수도 있습니다.
동부산CC 프로젝트에서는 데이터베이스 연결, 예약 저장, 로그인, 파일 업로드 등 오류가 발생할 수 있는 모든 기능에 예외 처리를 적용하면 안정적인 서비스를 만들 수 있습니다.
1. 예외(Exception)란?
예외(Exception)는 프로그램 실행 중 발생하는 오류 상황입니다.
예를 들어
데이터베이스 연결 실패
존재하지 않는 파일
잘못된 입력값
업로드 실패
등이 모두 예외입니다.
2. 왜 예외 처리가 필요할까?
예외 처리가 없으면
DB 연결 실패
↓
프로그램 종료
예외 처리가 있으면
DB 연결 실패
↓
오류 메시지 출력
↓
프로그램 안전 종료
사용자에게 적절한 안내를 제공할 수 있습니다.
3. try ~ catch
기본 문법
<?php
try{
echo "정상 실행";
}catch(Exception $e){
echo "오류 발생";
}
?>
4. Exception 발생시키기
<?php
try{
throw new Exception("오류가 발생했습니다.");
}catch(Exception $e){
echo $e->getMessage();
}
결과
오류가 발생했습니다.
5. PDO와 예외 처리
<?php
try{
$pdo = new PDO($dsn, $user, $password);
}catch(PDOException $e){
echo "DB 연결 실패";
}
실무에서는 DB 연결 시 거의 항상 사용합니다.
6. 오류 메시지 확인
<?php
try{
throw new Exception("예약 실패");
}catch(Exception $e){
echo $e->getMessage();
}
결과
예약 실패
7. 동부산CC 예제
예약 저장
예약하기
↓
DB 저장
↓
성공
또는
실패
실패해도 프로그램이 비정상 종료되지 않습니다.
8. finally
예외 발생 여부와 관계없이 항상 실행됩니다.
<?php
try{
echo "예약 처리";
}catch(Exception $e){
echo "오류";
}finally{
echo "처리 완료";
}
9. 파일 업로드 예외
<?php
if(
!move_uploaded_file($tmp, $path)
){
throw new Exception("업로드 실패");
}
10. 로그인 예외
<?php
if(
empty($_POST["userid"])
){
throw new Exception("아이디를 입력하세요.");
}
11. 예약 인원 검사
<?php
if($players < 1){
throw new Exception("예약 인원이 올바르지 않습니다.");
}
12. React와 비교
React
try{
await axios.get(...);
}catch(error){
console.log(error);
}
PHP
try{
// PHP 코드
}catch(Exception $e){
echo $e->getMessage();
}
문법은 다르지만 오류를 잡는 개념은 같습니다.
13. 실무 예제
<?php
try{
$greenFee = 180000;
if($greenFee < 0){
throw new Exception("금액 오류");
}
echo "예약 완료";
}catch(Exception $e){
echo $e->getMessage();
}
14. 로그 기록
실무에서는 사용자에게 상세 오류를 보여주기보다
화면에는 "처리 중 문제가 발생했습니다."
서버 로그에는 실제 오류 내용
을 남기는 경우가 많습니다.
15. 예외 처리가 필요한 기능
✔ DB 연결
✔ 로그인
✔ 회원가입
✔ 예약 저장
✔ 파일 업로드
✔ 결제
16. 사용자 메시지
좋은 예
예약 처리 중 문제가 발생했습니다.
잠시 후 다시 시도해 주세요.
나쁜 예
PDOException ...
SQL 오류 ...
내부 오류 정보를 그대로 노출하지 않는 것이 좋습니다.
17. 동부산CC 적용
예약
↓
예외 처리
↓
성공
↓
예약 완료
또는
실패
↓
안내 메시지
18. 실습 과제
다음을 구현해 보세요.
이름이 비어 있으면 예외 발생
예약 인원이 1명 미만이면 예외 발생
파일 업로드 실패 시 예외 발생
그리고 각각 다른 오류 메시지를 출력해 보세요.
19. 실무 팁
✔ try 안에는 실행 코드 작성
✔ catch에서는 오류 처리
✔ finally는 정리 작업
✔ 사용자에게는 친절한 안내 메시지 제공
20. 정리
예외 처리는 프로그램 실행 중 발생하는 오류를 안전하게 처리하는 방법입니다.
PHP에서는 try, catch, finally를 사용하여 오류를 처리하며, throw를 이용해 직접 예외를 발생시킬 수도 있습니다.
동부산CC 프로젝트에서는 데이터베이스 연결, 예약 저장, 로그인, 파일 업로드 등 오류가 발생할 수 있는 모든 기능에 예외 처리를 적용하면 안정적인 서비스를 만들 수 있습니다.
#PHP 17강. 예외 처리(Exception Handling)