我正在尝试通过我的java应用程序登录CISCO IOS路由器。 几个星期前,我在成功比赛中得到零作为'returnValue',在比赛错误时得到-2。
expect.send(password+NEW_LINE);
returnValue=expect.expect("XYZ#");
其中'XYZ#'是命令行的提示符,一旦我们输入了正确的密码并登录,我们就会看到它。 它工作正常,但现在我看到-3为'returnValue',即使'期望'是正确的,当'期望'不正确时再次使用相同的值。
匹配正确时返回的值是多少? 描述说 - 返回找到模式的'次数'或错误代码
答案 0 :(得分:0)
static int RET_UNKNOWN = -1;
Expect4j.expect返回的错误代码表示发生了一些无法预料的情况。
static int RET_TIMEOUT = -2;
Expect4j.expect返回的错误代码,表示超时值在找到结束匹配之前已过期。
static int RET_EOF = -3;
Expect4j.expect返回的错误代码,表示访问读者流时遇到文件结束标记。
static int RET_TRIED_ONCE = -4;
Expect4j.expect返回的错误代码表示未找到匹配项并且未进行重新尝试。
所以你可以处理这样的错误:
// ...
int returnValue = expect.expect("XYZ#");
if(returnValue < 0){
switch(returnValue){
case Expect4j.RET_UNKNOWN: {
// handle error
break;
}
case Expect4j.RET_TIMEOUT: {
// handle error
break;
}
case Expect4j.RET_EOF: {
// handle error
break;
}
case Expect4j.RET_TRIED_ONCE: {
// handle error
break;
}
}
}