Java else部分没有被执行

时间:2014-05-07 03:57:11

标签: java

我正在使用if-else代码来检查字符串是否显示,令我惊讶的是Else部分根本没有被执行。

例如:如果显示错误字符串,则IF部分正常工作。如果未显示错误字符串,则不会执行Else部分。请帮助

if(getErrText.length() > 0) {
    System.out.println(getErrText + " For "+ readerIterator);
} else {
    System.out.println(" Error is not displayed - Err Cell" + " For "+ readerIterator);
}

3 个答案:

答案 0 :(得分:1)

当我做出一些假设时,

public static void main(String[] args) {
  String getErrText = ""; // <--------------- To trigger else.
  String readerIterator = "Yes it is"; // <-- To display a message.
  if (getErrText.length() > 0) { // <-------- else means that getErrText **must** be ""
    System.out.println(getErrText + " For "
        + readerIterator);
  } else {
    System.out.println("Error is not displayed "
        + "- Err Cell For " + readerIterator);
  }
}

输出

Error is not displayed - Err Cell For Yes it is

正如我所料。

修改

根据评论,您的实际问题可能是

之一
// trim() the String!
if (getErrText != null && getErrText.trim().length() > 0) {
  // as before...
}

或默默地吞咽你的异常。 不要这样做。

try { 
  getErrText = toSearch.errorCell.getText();
  getErrText = (getErrText != null) ? getErrText.trim() : "";
}catch(Exception e){
  e.printStackTrace(); 
} 

答案 1 :(得分:0)

您可能将其包含在设置了错误的块中,这就是您的getErrText长度始终大于零的原因。

请您添加封闭代码以获取错误文本

  1. 如果您没有执行其他操作,请打印代码的if部分并进行调试。
  2. 如果你的if和else都没有被执行,那么这些场景下的流程根本没有达到if-else。

答案 2 :(得分:0)

要找出问题所在,请在其他方面打印错误:

System.out.println(" Error is not displayed - Err Cell" + " For "+ readerIterator+" The getErrText is ["+getErrText+"]);