Java程序工作文件,但在调试“线程暂停”

时间:2017-03-11 11:48:40

标签: java exception exception-handling apache-poi

请考虑以下代码:

// program is reading data from an excel file, Sheet1 at cell(0,0).

public class Read {

   public static void main(String[] args) throws Exception{

       File f = new File("sample.xlsx");
       FileInputStream fis = new FileInputStream(f);
       XSSFWorkbook wb = new XSSFWorkbook(fis); // set a breakpoint here
       XSSFSheet sheet = wb.getSheetAt(0);
       String data = sheet.getRow(0).getCell(0).getStringCellValue();
       System.out.println(data);
       wb.close();
}}

程序工作正常,但在创建XSSFWorkbook对象时设置断点的调试中,线程被挂起,Eclipse打开“Reader.class”。

以下是堆栈信息:

Thread [main] (Suspended (exception NullPointerException))  
InputStreamReader(Reader).<init>(Object) line: not available    
InputStreamReader.<init>(InputStream) line: not available   
...
...
XSSFWorkbook.<init>(InputStream) line: 296  
Read2.main(String[]) line: 20

请告诉我,这里有什么问题?

1 个答案:

答案 0 :(得分:1)

Eclipse暂停该线程,因为发生了NullPointerException。您似乎在某个时候为NullPointerException添加了NuGet documentation。甚至在您点击您设置的断点之前,就会抛出此异常。它被捕获到其他地方,这就是为什么当你运行(而不是调试)程序时你没有注意到它。

你可以点击&#34;恢复&#34;或者在断点视图中删除异常断点(再次按Alt-Shift-Q,Q并搜索&#34;断点&#34;)。