Re: How to catch error (or exit) when Receive hang - WeOnlyDo Discussion board

Re: How to catch error (or exit) when Receive hang (General questions)

by novanstar, Tuesday, November 04, 2008, 21:07 (5643 days ago) @ woddrazen

Hi,
Here is the full code: Thanks,

===== code ===== (code hang when it print out Count: 4 )
my $ssh = Win32::OLE->new( WeOnlyDo.wodSSHCom.1 );
my $buffer = q{};
$ssh->{Protocol} = 4;
$ssh->{HostName} = 'host01';
$ssh->{Blocking} = 'True';
$ssh->{Login} = 'user';
$ssh->{Password} = 'password';
$ssh->Connect();
$ssh->WaitFor('user@host01:~$ ');
$ssh->Send( command open tty://\n );

ssh->WaitFor('root@devict:/$ ', 10);

print Start to send command... ;
$ssh->Send( command for device\n );

eval {
for (my $i = 1; $i<=20; $i++) {
print Count: $i ;

$buffer .= $ssh->Receive();
print $buffer ;
}
};
if ($@) {
print Error!!!

;
$ssh->Disconnect();
return $buffer;
}

=======================
Alternative to eval{}:
try {
for (my $i = 1; $i<=20; $i++) {
print Count: $i ;
$buffer .= $ssh->Receive();
print $buffer ;
}
}
catch Error with {
print Error!!!

;
$ssh->Disconnect();
return $buffer;
}


Complete thread: