getMessageByKey($messageKey, $data); parent::__construct($message, $code, $previous, $data); } private function getMessageByKey(string $key, array $data = []): string { $messages = [ 'DB_CONNECT_FAILED' => '数据库连接失败: {message}', 'VALIDATION_FAILED' => '参数验证失败', 'UNAUTHORIZED' => '未授权访问', 'FORBIDDEN' => '禁止访问', 'NOT_FOUND' => '资源不存在', 'SERVER_ERROR' => '服务器内部错误', ]; $message = $messages[$key] ?? $key; foreach ($data as $k => $v) { $message = str_replace('{' . $k . '}', (string)$v, $message); } return $message; } }