SDK hataları
Başarısız her çağrı tipli bir hata fırlatır. SDK’lar null ya da boş kod gibi belirsiz bir
değer asla döndürmez; bu yüzden bir çağrı döndüyse sonuç elinizdedir.
Hepsi tek bir taban sınıfı paylaşan dört tür vardır:
| Tür | Ne zaman | Ek veri |
|---|---|---|
| Timeout | Sunucu ya da istemci deadline’ı geçti ve beklediğiniz şey hiç gelmedi. | waitedMs, jobId |
| Provider | Harici sağlayıcı (bir captcha çözücü, Twilio, Hero SMS) hata döndürdü ya da çözemedi. | provider, providerCode |
| NoResult | İstek çalıştı ama size verilecek değer yok: kod çıkarılamadı ya da token gelmedi. | yok |
| Request | Ağ hatası, HTTP 4xx/5xx, geçersiz parametre ya da siz iptal ettiniz. | status |
Her hata ayrıca service (captchas, emails ya da numbers) ve data (ham yanıt
gövdesi) taşır.
| Sınıf | Tür |
|---|---|
ChallengeError |
Diğerlerinin taban sınıfı. |
ChallengeTimeoutError |
Timeout. |
ChallengeProviderError |
Provider. |
ChallengeNoResultError |
NoResult. |
ChallengeRequestError |
Request. |
const { emails, ChallengeError, ChallengeTimeoutError, ChallengeNoResultError,} = require('@clearance-rest/sdk');
try { const email = await emails.wait({ emailAccount: 'test@example.com', codeRegex: '\\d{6}', timeout: 5000 }); use(email.code);} catch (err) { if (err instanceof ChallengeTimeoutError) handleTimeout(err.waitedMs); else if (err instanceof ChallengeNoResultError) handleNoCode(); else if (err instanceof ChallengeError) handleServiceError(err); else throw err;}Hepsi ClearanceRest\Exceptions namespace’indedir.
| Sınıf | Tür | Getter’lar |
|---|---|---|
ChallengeException |
Diğerlerinin taban sınıfı. | getService(), getData() |
ChallengeTimeoutException |
Timeout. | getWaitedMs(), getJobId() |
ChallengeProviderException |
Provider. | getProvider(), getProviderCode() |
ChallengeNoResultException |
NoResult. | yok |
ChallengeRequestException |
Request. | getStatus() |
use ClearanceRest\Exceptions\{ChallengeException, ChallengeTimeoutException, ChallengeNoResultException};
try { $email = $client->emails->wait(emailAccount: 'test@example.com', codeRegex: '\d{6}', timeout: 5_000); use($email['code']);} catch (ChallengeTimeoutException $e) { handleTimeout($e->getWaitedMs());} catch (ChallengeNoResultException $e) { handleNoCode();} catch (ChallengeException $e) { handleServiceError($e);}API yanıtları hangi hataya karşılık gelir
Bölüm başlığı “API yanıtları hangi hataya karşılık gelir”| Yanıt | Hata |
|---|---|
error: "timeout" ile 200 ya da istemci deadline’ının geçmesi |
Timeout |
Bir çözücünün çözemediğini bildirmesi (code: "ERROR_…", status: "failed") |
Provider |
200 ama token yok ya da code_regex hiçbir şeyle eşleşmedi |
NoResult |
400, 401, 404, 502, ağ hatası, iptal |
Request |
Arkadaki API davranışı için bkz. Yanıtlar ve hatalar.