Expect4j中expect(“”)方法的返回值是多少?

时间:2018-04-12 13:11:28

标签: java

我正在尝试通过我的java应用程序登录CISCO IOS路由器。 几个星期前,我在成功比赛中得到零作为'returnValue',在比赛错误时得到-2。

         expect.send(password+NEW_LINE);
         returnValue=expect.expect("XYZ#");

其中'XYZ#'是命令行的提示符,一旦我们输入了正确的密码并登录,我们就会看到它。 它工作正常,但现在我看到-3为'returnValue',即使'期望'是正确的,当'期望'不正确时再次使用相同的值。

匹配正确时返回的值是多少? 描述说 - 返回找到模式的'次数'或错误代码

1 个答案:

答案 0 :(得分:0)

阅读documentationsource code

  

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;
        }
    }
}