开发者社区> 问答> 正文

Java TimerTask 报错

"

public static void main(String[] args) throws Exception    {

Timer timer = new Timer();
timer.schedule(new TimerTask() { 

Document doc = Jsoup.connect("http://www.oschina.net/").get(); public void run(){

Elements t = doc.select("table");

String linkText = t.text();      
System.out.println(linkText);

}

},1000,5000);

}


为什么上面的代码编译正常,下面的就不行了?

public static void main(String[] args) throws Exception    {  


    Timer timer = new Timer();
    timer.schedule(new TimerTask() { 


    public void run(){
    Document doc = Jsoup.connect("http://www.oschina.net/").get();
    Elements t = doc.select("table");

    String linkText = t.text();      
    System.out.println(linkText);
   }

    },1000,5000);
}  

这一句移了一个位置
Document doc = Jsoup.connect("http://www.oschina.net/").get();

编译错误:

Exception in thread "Timer-0" java.lang.Error: Unresolved compilation problem:
Unhandled exception type IOException
at bitcoin.aaa$1.run(aaa.java:25)
at java.util.TimerThread.mainLoop(Unknown Source)
at java.util.TimerThread.run(Unknown Source)

" ![image.png](https://ucc.alicdn.com/pic/developer-ecology/0845fd3392ed4a12b2f170ddb0393dac.png)

展开
收起
因为相信,所以看见。 2020-05-26 13:57:07 608 0
1 条回答
写回答
取消 提交回答
  • 阿里,我所有的向往

    Jsoup.connect("http://www.oschina.net/").get();
    这行代码有网络IO操作,按照java的习惯,应该抛出IOException,但是run方法是override的,
    不能声明抛出IOException,必须在run方法内catch这个异常。

    ![image.png](https://ucc.alicdn.com/pic/developer-ecology/567dec76903f406981fe2077fe000fcf.png)
    2020-05-27 10:06:32
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载