Trying to ouput exceptions to a file - how can I pass objects into catch block?
在这种情况下,我试图处理表中的一批行,并使用JXL将结果(成功或异常)输出到Excel电子表格中。问题是我看不到如何将启动的Excel工作簿传递到catch块,以便将异常打印到其中。下面是一些简单的代码,概述了我的程序的结构(忽略任何基本错误,我只是出于演示目的键入了这些代码):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | public static void main(String[] args) { try{ WritableWorkbook exceptionWB=Workbook.createWorkbook(new File("filename.xls"); WritableSheet excepSheet=exceptionWB.createSheet("Exceptions",0); int exceptionRow=1; for(int i=0; i<numberOfRecords;i++){ processRow(argument1, argument2, excepSheet, exceptionRow); } catch (Exception e){ Label exception1=new Label(0, exceptionRow, e.getMessage()); exceptionWB.write(); } } public void processRow(String arg1, String arg2, WritableSheet sheet, int row){ try{ // A load of operations here } catch(Exception e) { Label exception1=new Label(0, exceptionRow, e.getMessage()); exceptionWB.write(); } } |
我知道catch块没有访问工作表的权限,因为它不在范围内,但是如果我将工作簿的初始化移出try块,它会返回一个错误,因为它周围没有异常处理。
是否有一种方法可以将此工作簿/工作表传递给各个catch块,或者我应该一起研究一个完全不同的解决方案?
谢谢
定义如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | public static void main(String[] args) { WritableWorkbook exceptionWB = null; try{ exceptionWB = Workbook.createWorkbook(new File("filename.xls"); WritableSheet excepSheet=exceptionWB.createSheet("Exceptions",0); int exceptionRow=1; for(int i=0; i<numberOfRecords;i++) { processRow(argument1, argument2, excepSheet, exceptionRow); } catch (Exception e) { //You should now have access to the exceptionWB Label exception1=new Label(0, exceptionRow, e.getMessage()); exceptionWB.write(); } } |