Throw another Exception during already throwing one: различия между версиями
Материал из AlexNook
Перейти к навигацииПерейти к поиску
ALEX (обсуждение | вклад) (Новая страница: «Как отрабатывает php код, когда мы бросаем исключение, создавая объект throwable, в момент создания которого мы бросаем ещё одно исключение. Пример кода Category:Index Category:Software») |
ALEX (обсуждение | вклад) |
||
Строка 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"; }