Лучше ли разделять разные блоки try catch или я могу сгруппировать серию вызовов классов в один блок? В настоящее время я настроен на запуск с одним блоком и не получаю ошибок. Я прошу в основном для удобочитаемости и проверки будущего.
например, несколько блоков:
/** KERNEL AUTOLOAD
* = check system setup and load autoloader, bootstrap, and magma config */
try {
/** AutoLoad Kernel */
if (!require_once($paths['root']
. '/' . $paths['framework']
. '/' . '/kernel/core/KernelLoader.php')) {
throw new Exception('Error - AutoLoader is missing');
}
$kernel_loader = new KernelLoader($paths);
} catch (Exception $e) {
echo
'<p><b>EXCEPTION</b><br />Message: '
. $e->getMessage()
. '<br />File: '
. $e->getFile()
. '<br />Line: '
. $e->getLine()
. '</p>';
}
/** KERNEL BOOTSTRAP
* = check system setup and load autoloader, bootstrap, and magma config */
try {
/** BootStrap */
if (!$kernel = new BootStrap($paths)) {
throw new Exception('Error - BootStrap is missing');
}
} catch (Exception $e) {
echo
'<p><b>EXCEPTION</b><br />Message: '
. $e->getMessage()
. '<br />File: '
. $e->getFile()
. '<br />Line: '
. $e->getLine()
. '</p>';
}
/** APP SETUP
* = initialize the app */
try {
/** StartPage */
if (!$app = new StartPage($kernel)) {
throw new Exception('Error - App StartPage is missing');
}
} catch (Exception $e) {
echo
'<p><b>EXCEPTION</b><br />Message: '
. $e->getMessage()
. '<br />File: '
. $e->getFile()
. '<br />Line: '
. $e->getLine()
. '</p>';
}
Или один блок захвата:
/** KERNEL AUTOLOAD
* = check system setup and load autoloader, bootstrap, and magma config */
try {
/** AutoLoad Kernel */
if (!require_once($paths['root']
. '/' . $paths['framework']
. '/' . '/kernel/core/KernelLoader.php')) {
throw new Exception('Error - AutoLoader is missing');
}
$kernel_loader = new KernelLoader($paths);
/** BootStrap */
if (!$kernel = new BootStrap($paths)) {
throw new Exception('Error - BootStrap is missing');
}
/** StartPage */
if (!$app = new StartPage($kernel)) {
throw new Exception('Error - App StartPage is missing');
}
} catch (Exception $e) {
echo
'<p><b>EXCEPTION</b><br />Message: '
. $e->getMessage()
. '<br />File: '
. $e->getFile()
. '<br />Line: '
. $e->getLine()
. '</p>';
}
Это семантически зависит от того, что делает блок кода и как ошибки должны обрабатываться с точки зрения выполняемой бизнес-логики. (Не так, как они должны быть пойманный, но как они должны быть обрабатываются.) Например:
catch
Блок.)catch
блоки.)Семантически разделить ваши операции на их собственные проблемы, а затем обрабатывать ошибки в этих проблемах.
Других решений пока нет …