本文整理汇总了PHP中Bitrix\Main\Event::addException方法的典型用法代码示例。如果您正苦于以下问题:PHP Event::addException方法的具体用法?PHP Event::addException怎么用?PHP Event::addException使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Bitrix\Main\Event
的用法示例。
在下文中一共展示了Event::addException方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: sendToEventHandler
private function sendToEventHandler(array $handler, Event $event)
{
try {
$result = true;
$event->addDebugInfo($handler);
if (isset($handler["TO_MODULE_ID"]) && !empty($handler["TO_MODULE_ID"]) && $handler["TO_MODULE_ID"] != 'main') {
$result = Loader::includeModule($handler["TO_MODULE_ID"]);
} elseif (isset($handler["TO_PATH"]) && !empty($handler["TO_PATH"])) {
$path = ltrim($handler["TO_PATH"], "/");
if (($path = Loader::getLocal($path)) !== false) {
$result = (include_once $path);
}
} elseif (isset($handler["FULL_PATH"]) && !empty($handler["FULL_PATH"]) && IO\File::isFileExists($handler["FULL_PATH"])) {
$result = (include_once $handler["FULL_PATH"]);
}
$event->addDebugInfo($result);
if (isset($handler["TO_METHOD_ARG"]) && is_array($handler["TO_METHOD_ARG"]) && !empty($handler["TO_METHOD_ARG"])) {
$args = $handler["TO_METHOD_ARG"];
} else {
$args = array();
}
if ($handler["VERSION"] > 1) {
$args[] = $event;
} else {
$args = array_merge($args, array_values($event->getParameters()));
}
$callback = null;
if (isset($handler["CALLBACK"])) {
$callback = $handler["CALLBACK"];
} elseif (!empty($handler["TO_CLASS"]) && !empty($handler["TO_METHOD"]) && class_exists($handler["TO_CLASS"])) {
$callback = array($handler["TO_CLASS"], $handler["TO_METHOD"]);
}
if ($callback != null) {
$result = call_user_func_array($callback, $args);
}
if ($result != null && !$result instanceof EventResult) {
$result = new EventResult(EventResult::UNDEFINED, $result, $handler["TO_MODULE_ID"]);
}
$event->addDebugInfo($result);
if ($result != null) {
$event->addResult($result);
}
} catch (\Exception $ex) {
if ($event->isDebugOn()) {
$event->addException($ex);
} else {
throw $ex;
}
}
}