Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 14 additions & 19 deletions lib/public/HintException.php
Original file line number Diff line number Diff line change
@@ -1,37 +1,37 @@
<?php

declare(strict_types=1);

/**
* SPDX-FileCopyrightText: 2021-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OCP;

/**
* Class HintException
*
* An Exception class with the intention to be presented to the end user
*
* @package OCP
* @since 23.0.0
*/
class HintException extends \Exception {
private $hint;

/**
* HintException constructor.
*
* @since 23.0.0
* @param string $message The error message. It will be not revealed to the
* the user (unless the hint is empty) and thus
* should be not translated.
* @param string $hint A useful message that is presented to the end
* user. It should be translated, but must not
* contain sensitive data.
* @param string $message The error message. It is not intended to be shown
* to the end user unless the hint is empty, and
* therefore should not be translated.
* @param string $hint A useful message presented to the end user. It should
* be translated, but must not contain sensitive data.
* @param int $code
* @param \Exception|null $previous
*/
public function __construct($message, $hint = '', $code = 0, ?\Exception $previous = null) {
$this->hint = $hint;
public function __construct(
string $message,
private string $hint = '',
int $code = 0,
?\Exception $previous = null,
) {
parent::__construct($message, $code, $previous);
}

Expand All @@ -40,7 +40,6 @@ public function __construct($message, $hint = '', $code = 0, ?\Exception $previo
* code, the message and the hint.
*
* @since 23.0.0
* @return string
*/
public function __toString(): string {
return self::class . ": [{$this->code}]: {$this->message} ({$this->hint})\n";
Expand All @@ -52,12 +51,8 @@ public function __toString(): string {
* instead.
*
* @since 23.0.0
* @return string
*/
public function getHint(): string {
if (empty($this->hint)) {
return $this->message;
}
return $this->hint;
return $this->hint !== '' ? $this->hint : $this->message;
}
}
Loading