3v4l.org

run code in 300+ PHP versions simultaneously
<?php function save_order() { if(1==1){ throw new exception('caught exception'); } }; function set_order_number() { echo 'SET_ORDER_NUMBER'.PHP_EOL; }; echo 'running'; function set_plan_id() { echo 'SET PLAN ID'.PHP_EOL; }; try{ save_order(); //for testing purposed, guaranteed to throw exception set_order_number(); set_plan_id(); //WHY DOES THIS STILL EXECUTE? }catch(Exception $e){ header('Internal Server Error', true, 500); //echo http_response_code().PHP_EOL; echo json_encode(array('msg'=>$e->getMessage())); exit; }
Output for 5.5.0 - 5.5.38, 5.6.0 - 5.6.24, 7.0.0 - 7.0.20, 7.1.0 - 7.1.33, 7.2.0 - 7.2.33, 7.3.0 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.28, 8.2.0 - 8.2.18, 8.3.0 - 8.3.6
running Warning: Cannot modify header information - headers already sent by (output started at /in/DRnvb:12) in /in/DRnvb on line 22 {"msg":"caught exception"}

preferences:
201.37 ms | 404 KiB | 252 Q