BotreamDokümanlar Web sitesi English v0.1.1

Hata Yönetimi komutları

try · retry · onerror · throw

try Try

Hata yönetimi bloğu. catch bölümü bir komut başarısız olduğunda çalışır (catch --error:err ayrıntıları $err$ içine koyar); finally bölümü hata olsun olmasın her zaman ardından çalışır (ör. bir tarayıcıyı veya çalışma kitabını kapatmak için).

Blok komutu: try … endtry; bölümleri: catch, finally.

Bölüm catch

ParametreDeğerVarsayılanAçıklama
--errordeğişken adıHatayı record olarak alan değişken: Message, Type, CommandLine, CommandType, Timestamp (ör. --error:err, ardından $err.Message$)
--errormessagedeğişken adıYalnızca hata mesajını alan değişken
--errorlinedeğişken adıYalnızca başarısız olan satır numarasını alan değişken
--errortypeşunlardan biri: business, systemYalnızca bu türdeki hataları ele al; diğer tür dıştaki bir catch'e iletilir. Boşsa tüm hatalar

Bölüm finally

Parametre yok.

Örnekler

try
    browser --action:open --url:"https://portal.example.com" --output:web
    capture --browser:$web$ --action:click --dompath:"//button[@id='submit']"
catch --error:err
    log --message:"Error occurred: $err.Message$" --level:error
    mail --to:"admin@company.com" --subject:"RPA Error" --body:$err.Message$
finally
    browser --browser:$web$ --action:close
endtry
try
    if --condition:"$total$ <= 0"
        throw --message:"Invoice $no$ has no total"
    endif
catch --error:err
    log --message:$err.Message$ --level:error
    throw
endtry

retry Retry

İçindeki komutlardan biri başarısız olursa komutları toplam --times denemeye kadar yeniden çalıştırır; --until ile, komutlardan sonra bu koşul yanlış olduğu sürece de yeniden dener. Son denemeden sonra hata her zamanki gibi devam eder (çevreleyen bir try/catch yakalar). İş hataları (throw --type:business) yeniden denenmez.

Blok komutu: retry … endretry.

Parametreler

ParametreDeğerVarsayılanAçıklama
--timessayı3İlki dahil toplam deneme sayısı (3 = ilk çalıştırma ve en fazla 2 tekrar)
--intervalsayı1Sonraki denemeden önce beklenecek saniye
--untilkoşulKomutlar çalıştıktan sonra bu koşul yanlış olduğu sürece de yeniden dene, ör. $status$ = "done" (if --condition gibi yazılır)

Örnekler

retry --times:3 --interval:5
    browser --action:open --url:"https://portal.example.com" --output:web
    capture --browser:$web$ --action:click --dompath:"//button[@id='login']"
endretry
retry --times:10 --interval:30 --until:"$status$ = Ready"
    restapi --action:get --url:"https://api.example.com/jobs/$jobId$" --output:job
    set --name:status --value:$job.Json.status$
endretry

onerror Onerror

Görev hata yöneticisi: yalnızca hiçbir catch bölümünün yakalamadığı bir hata görevi başarısız kılmak üzereyken çalışır (hata ekran görüntüsü alındıktan sonra); hata --error değişkenindedir. Ardından çalıştırma başarısız olur (--then:complete ile tamamlandı olarak biter). Görev başına bir tane, ana düzeyde, genellikle sonda. Görevi durdurmak onu çalıştırmaz.

Blok komutu: onerror … endonerror.

Parametreler

ParametreDeğerVarsayılanAçıklama
--errordeğişken adıerrorHatayı kayıt olarak alan değişken: Message, Type, CommandLine, CommandType, Timestamp (ör. $error.Message$)
--thenşunlardan biri: fail, completefailHata yöneticisinden sonra: fail - çalıştırma asıl hatayla başarısız olarak biter; complete - hata işlenmiş sayılır ve çalıştırma tamamlandı olarak biter (günlükte bir uyarıyla)

Örnekler

onerror --error:err --then:fail
    log --message:"Failed at line $err.CommandLine$ ($err.CommandType$): $err.Message$" --level:error
    screenshot --file:"C:\Botream\Errors\$System.ExecutionId$.png" --onerror:continue
    mail --action:send --smtp:smtp.company.com --port:587 --from:robot@company.com --to:support@company.com --subject:"Robot failed: $System.TaskName$" --body:$err.Message$ --onerror:continue
    queue --action:fail --item:$item$ --reason:$err.Message$ --onerror:continue
    window --action:close --window:$erp$ --onerror:continue
endonerror

throw Throw

Bir hata oluşturur: en yakın catch ele alır (--error değişkeni mesajı içerir), aksi halde görev başarısız olur. Bir catch bölümü içinde --message olmadan yakalanan hatayı iletir.

Parametreler

ParametreDeğerVarsayılanAçıklama
--messagemetinHata mesajı, ör. "Invoice $no$ has no total"; catch içinde boş bırakılırsa yakalanan hata yeniden fırlatılır
--typeşunlardan biri: business, systembusinessbusiness: sürecin bir kuralı ihlal edildi (hatalı veri, eksik onay) - asla yeniden denenmez, öğe atlanır. system: uygulama veya ağ başarısız oldu - diğer teknik hatalar gibi yeniden denenir
Botream 0.1.1 · Oluşturulma 2026-10-14