summaryrefslogtreecommitdiffstats
path: root/src/CepNotFoundException.php
diff options
context:
space:
mode:
Diffstat (limited to 'src/CepNotFoundException.php')
-rw-r--r--src/CepNotFoundException.php19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/CepNotFoundException.php b/src/CepNotFoundException.php
index c64de8b..e9511e7 100644
--- a/src/CepNotFoundException.php
+++ b/src/CepNotFoundException.php
@@ -9,7 +9,26 @@ namespace Cepis;
*
* Extends `\OutOfBoundsException`, the SPL type for a value that is not a
* valid key: looking a CEP up is conceptually a key lookup.
+ *
+ * {@see CepNotFoundException::$faixa} may name the municipality the CEP would
+ * have belonged to. It does not soften the answer — the CEP still does not
+ * exist — it only makes the failure sayable: *"we could not find that CEP in
+ * Areal/RJ"* rather than *"CEP not found"*.
*/
final class CepNotFoundException extends \OutOfBoundsException implements CepisException
{
+ /**
+ * @param Faixa|null $faixa The municipality whose range covers the CEP, or
+ * `null` when the API sent none — which is the case for a CEP in a band
+ * no municipality owns, and also whenever the block cannot be read.
+ * Never assume it is there. See {@see Faixa} for why the range it
+ * carries is not a list of valid CEPs.
+ */
+ public function __construct(
+ string $message,
+ public readonly ?Faixa $faixa = null,
+ ?\Throwable $previous = null,
+ ) {
+ parent::__construct($message, 0, $previous);
+ }
}