finally 명령어

finally 블록은 예외 처리를 위해 try 및 catch 구조와 함께 사용됩니다. finally 내부의 코드는 try 블록이 성공적으로 실행되거나 예외가 발생하는 경우 모두 항상 실행됩니다.

문법

phptry {
  // 예외를 발생시킬 수 있는 코드
} catch (Exception $e) {
  // 예외 처리
} finally {
  // 어떤 경우에도 실행될 코드
}

예제

코드가 성공적으로 실행되는 예제:

php<?php
try {
  $res = 10 / 2;
  echo "Result: " . $res . "\n";
} catch (Exception $e) {
  echo "Exception: " . $e->getMessage() . "\n";
} finally {
  echo "This will always execute\n";
}
?>

코드 실행 결과:

phpResult: 5
This will always execute

예제

예외 처리가 있는 예제:

php<?php
try {
  $res = 10 / 0;
  echo "Result: " . $res . "\n";
} catch (Exception $e) {
  echo "Exception: " . $e->getMessage() . "\n";
} finally {
  echo "This will always execute\n";
}
?>

코드 실행 결과:

phpException: Division by zero
This will always execute

예제

리소스 해제를 위한 finally 사용:

php<?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";
  }
}
?>

코드 실행 결과:

phpFile opened successfully
File closed in finally block

함께 보기

  • 예외 처리에 사용되는 try 문,
  • 모든 예외의 기본 클래스인 Exception 클래스,