Throw another Exception during already throwing one

Материал из AlexNook
Версия от 14:34, 17 июня 2025; ALEX (обсуждение | вклад)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к навигацииПерейти к поиску

Как отрабатывает php код, когда мы бросаем исключение, создавая объект throwable, в момент создания которого мы бросаем ещё одно исключение.

Пример кода


File: index.php
<?php

class A extends Exception
{
	public function __construct()
	{
		try
		{
			echo "Instance of class A created\n";
			throw new B();
			echo "Some B class code executed";
		}
		catch(B $b)
		{
			echo "Cought object of B class\n";
		}
		
	}
	
	
}


class B extends Exception
{
	public function __construct()
	{
		echo "Instance of class B created\n";
		
	}
}


///////////////////////////////////////////////////////////


try
{
	echo "Programm started\n";
	throw new A();
	echo "Programm execution continues\n";
	
}
catch(A $a)
{
	echo "Cought object of A class\n";
}

Результат выполнения

donik /home/alex # php 11111.php
Programm started
Instance of class A created
Instance of class B created
Cought object of B class
Cought object of A class

Ссылки