catch_finally_004.phpt 680 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. --TEST--
  2. Try catch finally (nesting try-catch-finally)
  3. --FILE--
  4. <?php
  5. function throw_exception($msg) {
  6. throw new Exception($msg);
  7. }
  8. function foo (&$ex) {
  9. try {
  10. echo "1";
  11. try {
  12. echo "2";
  13. throw_exception("try");
  14. } catch (Exception $e) {
  15. echo "3";
  16. throw_exception("catch");
  17. } finally {
  18. echo "4";
  19. throw_exception("finally");
  20. }
  21. } catch (Exception $e) {
  22. $ex = $e;
  23. echo "3";
  24. } finally {
  25. echo "2";
  26. }
  27. return 1;
  28. }
  29. var_dump(foo($ex));
  30. do {
  31. var_dump($ex->getMessage());
  32. } while ($ex = $ex->getPrevious());
  33. ?>
  34. --EXPECT--
  35. 123432int(1)
  36. string(7) "finally"
  37. string(5) "catch"