缺少退货声明

时间:2011-07-13 07:43:47

标签: java

我正在尝试使用并找到另一个for循环的开始位置来读取Excel文件。

这是我的代码。

public static int CheckStartPosition(String filename,int Colno,String StartChar, int sheetno,int startpos) { 
 try {

 Workbook workbook = new Workbook();

 workbook.open(filename);

 Worksheet worksheet = workbook.getWorksheets().getSheet(sheetno);

 Cells cells=worksheet.getCells();

 int num=cells.getMaxDataRow();

 int num1=cells.getMaxDataColumn();

 int numofsheet= workbook.getNumberOfSheets();

 System.out.println(numofsheet);

 for (int n1=0;n1<=num;n1++) {  
     Cell cell1=cells.getCell(n1,Colno);
     if(cell1.getValue()!=null) {

         String value =cell1.getValue().toString().toLowerCase();
         if(value.equals(StartChar)) {

         System.out.println( cell1.getValue());

         int S= cell1.getRowIndex();

         startpos=S+1;

         System.out.println(startpos);
         }
     }else{}
 } 
 workbook.save("C:\\Movies.xls",FileFormatType.EXCEL97TO2003);

 return startpos; 
 } catch (IOException e) {
     // TODO Auto-generated catch block
     e.printStackTrace();
 }

}

:-  

CheckStartPosition(f1.xls, 0,"abc",2,0);

如何返回Startposition

5 个答案:

答案 0 :(得分:3)

由于格式化,它有点难以阅读。 CheckStartPosition()需要返回一个int。在你的catch区块你不会返回任何东西。归还一些东西或者更好的方法是使用抛出IOException声明CheckStartPosition并从CheckStartPosition中删除try catch。替代使用您自己的异常类型。

答案 1 :(得分:1)

您正在捕获异常,但没有返回任何内容。试试这个:

    catch (IOException e)
    {
        e.printStackTrace();
        return -1; // Some special value that means "I exploded"
    }

或者更好的是,不要抓住并将方法声明为throws IOException

答案 2 :(得分:0)

如果你得到例外,你不会退货。可能更好的方法是在方法的throws子句中声明实际异常。

答案 3 :(得分:0)

你可以做的是在你的try-catch块之前声明返回值并给它-1。在try-catch块中,您可以分配值。在try-catch块之后,你将它返回。

int CheckStartPosition(...)
{
   int returnInt = -1;
   try{
       ...
       returnInt = startpos; // instead of return startpos
       ...
    }catch(...){
        ...
        returnInt = -1; // if your code can crash after the "returnInt = startpos;"
    }
    return returnInt;
}

答案 4 :(得分:-1)

您必须使用以下内容调用您的方法:

int returnedValue = CheckStartPosition(f1.xls, 0,"abc",2,0);