我有一个代码块,我用一个带有最一般异常的 try catch 块包围,但它永远不会被捕获,因为我的 catch 语句中的逻辑永远不会执行并且程序继续。
try{
add an XYSeries object to a jfree XYSeriesCollection.
// do unrelated stuff
remove said series from the XYSeriesCollection.
}
catch(Exception e){
e.printStackTrace();
System.exit(-1);
}
该代码使用 jfree 库在图表上绘制了一些信息。这是打印到控制台但从未被捕获的异常。
线程“AWT-EventQueue-0”中的异常 java.lang.IndexOutOfBoundsException:索引:0,大小:0 在 java.util.ArrayList.rangeCheck(ArrayList.java:659) 在 java.util.ArrayList.get(ArrayList.java :435) 在 org.jfree.data.xy.AbstractXYDataset.getXValue(AbstractXYDataset.java:75) 在 org.jfree.chart.renderer 的 org.jfree.data.xy.XYSeriesCollection.getX(XYSeriesCollection.java:357)。 xy.XYLineAndShapeRenderer.drawSecondaryPass(XYLineAndShapeRenderer.java:1142) at org.jfree.chart.renderer.xy.XYLineAndShapeRenderer.drawItem(XYLineAndShapeRenderer.java:927) at org.jfree.chart.plot.XYPlot.render(XYPlot.java: 3828) 在 org.jfree.chart.plot.XYPlot.draw(XYPlot.java:3389) 在 org.jfree.chart.JFreeChart.draw(JFreeChart.java:1237) 在 org.jfree.chart.ChartPanel.paintComponent(ChartPanel .java:1677) 在 javax.swing.JComponent.paint(JComponent.java:第 1056 章) 在 javax.swing.RepaintManager.paint(RepaintManager.java:1272) 在 javax.swing.JComponent._paintImmediately(JComponent.java:5158) 在 javax.swing.JComponent.paintImmediately(JComponent.java:4969) 在 javax.swing .RepaintManager$4.run(RepaintManager.java:831) at javax.swing.RepaintManager$4.run(RepaintManager.java:814) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege (ProtectionDomain.java:74) 在 javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:814) 在 javax.swing.RepaintManager。paintDirtyRegions(RepaintManager.java:789) at javax.swing.RepaintManager.prePaintDirtyRegions(RepaintManager.java:738) at javax.swing.RepaintManager.access$1200(RepaintManager.java:64) at javax.swing.RepaintManager$ProcessingRunnable.run( RepaintManager.java:1732) 在 java.awt.Event.InvocationEvent.dispatch(InvocationEvent.java:311) 在 java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758) 在 java.awt.EventQueue.access$500(EventQueue. java:97) 在 java.awt.EventQueue$3.run(EventQueue.java:709) 在 java.awt.EventQueue$3.run(EventQueue.java:703) 在 java.security.AccessController.doPrivileged(Native Method) 在 java .security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74) 在 java.awt.EventQueue.dispatchEvent(EventQueue.java:728) 在 java.awt.EventDispatchThread。pumpOneEventForFilters(EventDispatchThread.java:205) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java :101) 在 java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93) 在 java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
如何正确捕获此异常?我已经尝试将特定异常'java.lang.IndexOutOfBoundsException'复制并粘贴到catch块中。