in templates/php/src/FacebookAds/CrashReporter.php [122:161]
private function registerExceptionHandler() {
$lastHandler = set_exception_handler(
function (\Throwable $e) use (&$lastHandler) {
self::log('Exception detected!');
$params = $this->buildParamsFromException($e);
if ($params != null) {
$this->sendReport(array(
'bizsdk_crash_report' => $params
));
}
// restore the previous exception
if (is_callable($lastHandler)) {
return call_user_func_array($lastHandler, [$e]);
} else {
throw $e;
}
}
);
$lastError = set_error_handler(
function ($errno, $errstr, $errfile, $errline) use (&$lastError) {
if (($errno & self::E_FATAL) && strpos($errfile, 'FacebookAds') != false) {
self::log('Error detected!');
$e = new \ErrorException($errstr, 0, $errno, $errfile, $errline);
$params = $this->buildParamsFromException($e);
if ($params != null) {
$this->sendReport(array(
'bizsdk_crash_report' => $params
));
}
}
if (is_callable($lastError)) {
return call_user_func_array($lastError, [$errno, $errstr, $errfile, $errline]);
} else {
// fall through to the standard PHP error handler
return false;
}
}
);
}