summaryrefslogtreecommitdiffstats
path: root/include/cepis/cepis.hpp
diff options
context:
space:
mode:
authorMurilo Ijanc <[email protected]>2026-07-27 20:33:51 -0300
committerMurilo Ijanc <[email protected]>2026-07-27 20:33:51 -0300
commit2fb251996798798af38903fe535b8d147084a50a (patch)
tree9bcbb6ead9c7c4c1910495186707dc0f8859169d /include/cepis/cepis.hpp
parentb71faa6e95a0736f1ff171e006b171467b65db90 (diff)
downloadcpp-0.2.0.tar.gz
Expose the municipality behind a not-found CEPHEADv0.2.0main
A CEP that fails a lookup is rarely random: it is usually someone who knows the city and guessed the number, and the classic guess is the -000 that 957 municipalities never received. The API now names, on the 404 itself, the municipality that CEP would have belonged to, so a caller can say "not found — did you mean somewhere in Areal/RJ?" instead of just "not found". CepNotFound carries it as an optional Faixa. It stays an error: the block is context, not an address, and the range it describes is sparse, which is why it reports a count alongside the first and last CEP that actually exist there rather than the bounds the Correios publish. Parsing it is best-effort on purpose — a missing, empty or malformed block leaves the optional empty, since a 404 is already the answer and reading the hint attached to it must never cost the diagnosis.
Diffstat (limited to 'include/cepis/cepis.hpp')
-rw-r--r--include/cepis/cepis.hpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/include/cepis/cepis.hpp b/include/cepis/cepis.hpp
index 4ac3f1f..1861d88 100644
--- a/include/cepis/cepis.hpp
+++ b/include/cepis/cepis.hpp
@@ -28,8 +28,10 @@
/// ```cpp
/// try {
/// const cepis::Address a = cepis::lookup(cep_from_form);
-/// } catch (const cepis::CepNotFound&) {
-/// // the CEP does not exist: ask the user for another
+/// } catch (const cepis::CepNotFound& error) {
+/// // the CEP does not exist: ask the user for another. `error.faixa()`
+/// // often names the municipality it would have belonged to — context for
+/// // the message, never an address.
/// } catch (const cepis::Error&) {
/// // network, server, rate limit: retry later
/// }