我的程序中有一条创建excel的workbook对象的语句。但有些excel文件被破坏了,其导致我的语句一直没有返回,也没有异常抛出,整个程序就死在那里了。希望能有个机制,将这条创建语句监控起来,如果到一定时间(如30秒)没有响应,则能由我编写的代码对其进行处理(如抛出一个我自创的异常)。望大家帮忙!

解决方案 »

  1.   

    不知道楼主使用什么类库来处理excel的。
    一个好的类库,总能捕捉到异常类的。
    楼主不妨把代码贴出来看看。
      

  2.   

    现在网吧,没法帖详细代码上来,大概讲一下吧:我是用jxl做excel的读取的,出问题的excel文件创建File对象没有问题,但创建jxl里的workbook对象就会导致无响应.另,用多线程(父线程设超时时间,子线程来建立workbook对象)可能可以解决这个问题,但我的这段程序本身就已经在一个子线程里了,这个程序需要比较高的执行效率,所以希望不再创建线程.
      

  3.   

    多个线程不会影响效率的。
    任何程序都是在某个线程中执行。一般如果要仿制某个线程被锁死就需要让别的线程监控它。
    除非线程自身能够脱离锁死状态否则就会一直呆在那里,无法自救的。
    当然你要是能够修改一下jxl的源代码加入响应的功能也行。
    楼主不要在这个问题上钻牛角尖。
    要用线程的时候就用把
      

  4.   

    有可能在创建jxl里的workbook对象的时候那个函数因为某种原因会永远block在那里啊,这样的话,除了用多线程还能有什么好办法啊?
    另外,用多线程不会影响效率的,当然设计槽糕的话,不用多线程照样低效