Throw another Exception during already throwing one: различия между версиями

Материал из AlexNook
Перейти к навигацииПерейти к поиску
(Новая страница: «Как отрабатывает php код, когда мы бросаем исключение, создавая объект throwable, в момент создания которого мы бросаем ещё одно исключение. Пример кода Category:Index Category:Software»)
 
Строка 4: Строка 4:




{{file|index.php|
<syntaxhighlight lang="php" line start="1" line="GESHI_FANCY_LINE_NUMBERS" enclose="div">
<?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";
}
</syntaxhighlight>
}}
<?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";
}




[[Category:Index]]
[[Category:Index]]
[[Category:Software]]
[[Category:Software]]

Версия 14:32, 17 июня 2025

Как отрабатывает 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";
}


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