finally 명령어
finally 블록은 예외 처리를 위해 try 및 catch 구조와 함께 사용됩니다. finally 내부의 코드는 try 블록이 성공적으로 실행되거나 예외가 발생하는 경우 모두 항상 실행됩니다.
문법
try {
// 예외를 발생시킬 수 있는 코드
} catch (Exception $e) {
// 예외 처리
} finally {
// 어떤 경우에도 실행될 코드
}
예제
코드가 성공적으로 실행되는 예제:
<?php
try {
$res = 10 / 2;
echo "Result: " . $res . "\n";
} catch (Exception $e) {
echo "Exception: " . $e->getMessage() . "\n";
} finally {
echo "This will always execute\n";
}
?>
코드 실행 결과:
Result: 5
This will always execute
예제
예외 처리가 있는 예제:
<?php
try {
$res = 10 / 0;
echo "Result: " . $res . "\n";
} catch (Exception $e) {
echo "Exception: " . $e->getMessage() . "\n";
} finally {
echo "This will always execute\n";
}
?>
코드 실행 결과:
Exception: Division by zero
This will always execute
예제
리소스 해제를 위한 finally 사용:
<?php
$file = fopen("example.txt", "r");
try {
// 파일 작업
if ($file) {
echo "File opened successfully\n";
}
} catch (Exception $e) {
echo "Exception: " . $e->getMessage() . "\n";
} finally {
if ($file) {
fclose($file);
echo "File closed in finally block\n";
}
}
?>
코드 실행 결과:
File opened successfully
File closed in finally block