. // }}} /** * Class for 'assertion' exceptions. Logs when an unexpected state is found and is treated as a ServerException downstream * HTTP code 500 * * @category Exception * @package GNUsocial * * @author Hugo Sales * @copyright 2021 Free Software Foundation, Inc http://www.fsf.org * @license https://www.gnu.org/licenses/agpl.html GNU AGPL v3 or later */ namespace App\Util\Exception; use App\Core\Log; use Throwable; class BugFoundException extends ServerException { public function __construct(string $log_message, string $message = '', int $code = 500, ?Throwable $previous = null) { parent::__construct($message, $code, $previous); $frame = debug_backtrace(\DEBUG_BACKTRACE_IGNORE_ARGS, limit: 2)[1]; $file = mb_substr($frame['file'], mb_strlen(INSTALLDIR) + 1); Log::critical("{$log_message} in {$file}:{$frame['line']}"); } }