繁体   English   中英

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

[英]Java program working file but on debugging “Thread suspended”

请考虑以下代码:

// 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

请告诉我,这是怎么了?

Eclipse挂起线程,因为发生了NullPointerException 好像您在某个时候为NullPointerException添加了一个异常断点 甚至在达到设置的断点之前,都会引发此异常。 它在其他地方被捕获,这就是为什么您在运行(而不是调试)程序时没有注意到它的原因。

您可以单击“恢复”,也可以在断点视图中删除异常断点(再次按Alt-Shift-Q,Q并搜索“断点”)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM