我要调用一个方法  如果该方法运行过程中出错  程序就会终止  那么 我想 我给该方法设置最长时间  如果在此时间内  该方法没有执行完  或者 出错了 就跳过该方法 继续执行 有没有方法实现???

解决方案 »

  1.   

    获取开始时间,再方法里面获取当前时间,如果差值大于100,就让程序退出。
    //获取时间
    System.out.println(System.currentTimeMillis());
    //退出
    System.exit(0);
      

  2.   

    楼上在方法中获取时间再相减是不行的,因为在方法中就有可能hung住了,执行不到获取时间的那一步可行的方案是把你的方法封装在一个线程中,主程序中调用这个线程的Start(),且这个线程需要一个你主程序的变量做为同步标志(可以设置一个Boolean的flag),在你线程的run()方法最后将flag设置为true,主程序循环检查线程是否完成:
    代码示例:
    Boolean flag = false;
    Tread yourThread = new Tread(flag);
    Tread.start();
    while(true)
    {
       if(flag==Boolean.false)
       {
          //计算时间,如果超时break,否则continue
       }
       else if(flag == Boolean.true)
       {
           break;
       }
    }
      

  3.   

    TimerTask tt = new TimerTask() { private int num = 0; @Override
    public void run() {
    if (num >= 60) {
    System.exit(0);
    }else{
    System.out.println(num);
    }
    this.num++;
    } };
    Timer timer = new Timer();
    timer.scheduleAtFixedRate(tt, new Date(), 1000);