Elbette sorun robotta değil, sorun iDeal'de. Her koşulda exe nin ayakta kalması (robustness) ve beklenmedik hataların (unhandled exceptions) yakalanması gerekir. Ancak her programın olduğu gibi iDeal'in de hataları var ve bizim için önemli olan iDeal hatalı bile olsa programın kapanmadan işlem yapmaya devam etmesi...
Ben kendi robotlarımda aşağıdaki yöntemi kullanıyorum:
Kod:
try
{
// RobotCode
}
catch (System.Threading.ThreadAbortException)
{
// Emit the ex because its expected with iDeal
}
catch (Exception ex)
{
User.Log(string.Format("{0} failed. Ex: {1}", Sistem.Name, ex));
}
Yukarıda RobotCode ile belirttiğim yerde meydana gelecek herhangi bir hata (ideal veya robot kaynaklı farketmez) bir log dosyasına yazılıyor ve program bir sonraki hesaplama döngüsüne kadar başka bir şey yapmıyor. Yukarıdaki yöntemi tavsiye ederim.