소개
마침내의 독특한 동작이 있습니다. try 블록이나 catch 블록(또는 둘 다)에 return이 포함된 경우 차단 성명. 일반적으로 return 문은 프로그램 제어가 호출 위치로 돌아가도록 합니다. 단, try /catch 블록에 return이 있는 함수의 경우에는 finally 블록에 있는 문이 먼저 실행되어 반환됩니다.
예시
다음 예에서 div() 함수에는 try - catch - finally 구성이 있습니다. 예외가 없는 try 블록은 나눗셈의 결과를 반환합니다. 예외의 경우 catch 블록은 오류 메시지를 반환합니다. 그러나 두 경우 모두 finally 블록의 문이 먼저 실행됩니다.
예시
<?php function div($x, $y){ try { if ($y==0) throw new Exception("Division by 0"); else $res=$x/$y;; return $res; } catch (Exception $e){ return $e->getMessage(); } finally{ echo "This block is always executed\n"; } } $x=10; $y=0; echo div($x,$y); ?>
출력
다음 출력이 표시됩니다.
This block is always executed Division by 0
$y의 값을 5로 변경합니다. 다음 출력이 표시됩니다.
This block is always executed 2