1 먼저 try,catch
$path = "D:\\in.txt"
try //예외 감지
{
file_open($path);
}
catch(Exception $e) //예외 캐치
{
echo $e->getMessage()
}
function file_open($path)
{
if(!file_exists($path)) //파일을 찾을 수 없으면 예외 객체를 발생시킵니다.
{
throw new Exception("파일을 찾을 수 없습니다.", 1); }
if(!fopen($path, "r")) //파일을 열 수 없으면 예외 객체를 발생시킵니다.
{
throw new Exception("파일을 열 수 없습니다.", 2 );
}
}
?>
예외 정보를 출력하려면 $e->getMessage()를 사용하세요.
$path = "D: \\in.txt";
try
{
file_open($path); //파일 열기 시도
}
catch(예외 $ e)
{
echo "예외 정보: ".$e->getMessage()."\n" //사용자 정의 예외 정보 반환
echo "예외 코드: ".$e ->getCode()."\n"; //사용자 정의 예외 코드 반환
echo "파일 이름: ".$e->getFile()."\n"; //PHP 프로그램 반환 예외가 발생한 파일명
echo "예외코드가 위치한 라인".$e->getLine()."\n" //예외가 발생한 라인의 라인번호를 반환
echo "전송 경로:";
print_r($e ->getTrace()); //추적 예외의 각 단계의 경로를 배열 형식으로 반환합니다.
echo $e-> getTraceAsString(); //문자열 형식의 getTrace 함수 정보를 반환합니다.
}
function file_open($path)
{
if(!file_exists($path)) //파일이 존재하지 않으면 오류가 발생합니다.
{
throw new Exception("파일을 찾을 수 없습니다. ", 1)
}
if(!fopen($path, "r"))
{
throw new Exception("파일을 열 수 없습니다.", 2)
}
}
?>
확장 예외, 즉 사용자 지정 예외
php
class FileExistsException은 Exception을 확장합니다{} //파일이 존재하지 않는 예외를 처리하는 데 사용되는 클래스
class FileOpenException은 Exception을 확장합니다{} //읽을 수 없는 파일 예외를 처리하는 데 사용되는 클래스
$path = "D:\ \in.txt";
try
{
file_open($path);
}
catch(FileExistsException $e) //FileExistsException이 발생하면 사용자에게 확인 메시지가 표시됩니다. 파일 위치
{
echo "프로그램 실행 중 예외가 발생했습니다: ".$e->getMessage ()."\n"
echo "파일 위치를 확인하세요. ";
}
catch(FileOpenException $e) //FileOpenException이 발생하면 사용자에게 파일의 가독성을 확인하라는 메시지가 표시됩니다.
{
echo "실행 중 예외가 발생했습니다. program:". $e->getMessage()."\n";
echo "파일의 가독성을 확인해 주세요.";
}
catch(예외 $e)
{
echo "[알 수 없는 예외]";
echo "예외 메시지: ".$e->getMessage()." \n"; //사용자 정의 예외 정보 반환
echo "예외 코드: ".$e->getCode()."\n"; //사용자 정의 예외 코드 반환
echo "File name:".$e->getFile()."\n"; //예외가 발생한 PHP 프로그램 파일 이름을 반환합니다.
echo "예외 코드가 있는 줄".$e- >getLine(). "\n"; //예외가 발생한 줄의 번호를 반환합니다.
echo "전송 경로:"
print_r($e->getTrace()); /추적 예외를 배열 형태로 반환 각 단계에서 전달된 경로
echo $e->getTraceAsString() //getTrace 함수 정보를 문자열 형식으로 반환
}
function file_open ($path)
{
if (!file_exists($path))
{
throw new FileExistsException("파일을 찾을 수 없습니다.", 1) //Throw FileExistsException 예외 개체
}
if(!fopen($path, "r"))
{
throw new FileOpenException("파일을 열 수 없습니다.", 2) //FileOpenException 예외 객체 발생
}
}
?>
4 상위 계층으로 예외 다시 발생
class FileExistsException은 Exception{} //파일이 존재하지 않는 예외를 처리하는 데 사용되는 클래스
class FileOpenException은 Exception을 확장합니다{} //읽을 수 없는 파일 예외를 처리하는 데 사용됩니다. Class
$path = "D:\\in.txt"
try
{
file_open($path); >}
catch(FileExistsException $e) // FileExistsException이 발생하면 사용자에게 파일 위치를 확인하라는 메시지가 표시됩니다.
{
echo "프로그램 실행 중 예외가 발생했습니다: ".$e ->getMessage()."\n";
echo "파일 위치를 확인해 주세요. ";
}
catch(FileOpenException $e) //FileOpenException이 발생하면 사용자에게 파일의 가독성을 확인하라는 메시지가 표시됩니다.
{
echo "실행 중 예외가 발생했습니다. program:". $e->getMessage()."\n";
echo "파일의 가독성을 확인해 주세요. ";
}
catch(예외 $e)
{
echo "[알 수 없는 예외]";
echo "예외 메시지: ".$e->getMessage()." \n"; //사용자 정의 예외 정보 반환
echo "예외 코드: ".$e->getCode()."\n"; //사용자 정의 예외 코드 반환
echo "File name:".$e->getFile()."\n"; //예외가 발생한 PHP 프로그램 파일 이름을 반환합니다.
echo "예외 코드가 있는 줄".$e- >getLine(). "\n"; //예외가 발생한 줄의 번호를 반환합니다.
echo "전송 경로:"
print_r($e->getTrace()); /추적 예외를 배열 형태로 반환 각 단계에서 전달된 경로
echo $e->getTraceAsString() //getTrace 함수 정보를 문자열 형식으로 반환
}
function file_open ($path)
{
시도
{
if(!file_exists($path))
{
throw new FileExistsException("파일을 찾을 수 없습니다.", 1); 🎜>}
if(!fopen($path , "r"))
{
throw new FileOpenException("파일을 열 수 없습니다.", 2)
}
}
catch(Exception $e) //예외 포착
{
echo "file_open 함수 작업 중 예외가 발생했습니다."
throw $e; //예외 다시 발생
}
}
?>
위에서는 php5 내용을 포함하여 php5 프로그래밍에서 예외 처리에 대한 자세한 방법을 소개했습니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.