У меня есть пакет для исключений, таких как
package MyExceptions;
use strict;
use warnings;
use Exception::Class (
'MyExceptions::TestException' => {
fields => [qw{message}],
}
);
use Moose::Util::TypeConstraints;
class_type 'MyExceptions::TestException';
no Moose::Util::TypeConstraints;
1;
В модуле связи. Исключение выдается при каждом ответе сервера как «ОШИБКА»
if ( $recv_data eq 'ERROR' )
{
MyExceptions::TestException->throw( message => $data );
}
elsif ( $recv_data eq 'YES' )
{
return $data;
}
что-то вроде этого
eval{
my $num = 0;
my $flag = 0;
do
{
if($num>6)
{
$flag = 1;
print "NOT found";
}
my $region = $obj->FindImage('SomeImage');
my $x = $region->getX;
my $y = $region->getY;
if(($x > 0) && ($y>0))
{
$flag = 1;
$obj->Command($x,$y);
}
else
{
$Obj->Command1('50','2','160','275','160','220');
}
$num++;
} while($flag==0);
$num = 0;
return;
};
if ( my $ex = $@ ) {
my $e ;
if ( $e = Exception::Class->caught('MyExceptions::ExecutionException'))
{
print $e->message;
}
}
В этом случае ... если изображение не найдено, необходимо выполнить команду и снова выполнить поиск изображения, однако в случае сервера возникает исключениеотвечает как «Ошибка», поэтому сценарий останавливает выполнение, а выполнение команды и следующая итерация поиска изображения не происходит.Как это можно решить и решить?
Спасибо,