六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 44|回复: 0

TimerTask抛不出运行时异常

[复制链接]

升级  30%

3

主题

3

主题

3

主题

童生

Rank: 1

积分
15
 楼主| 发表于 2013-1-15 02:40:24 | 显示全部楼层 |阅读模式
用J2SE和Android,都运行相同的TimerTask,表现
1. Java代码
import java.util.Timer;import java.util.TimerTask;public class ddd {    public static void main(String[] args) throws Exception {        Timer timer = new Timer();        timer.schedule(new Task(), 10, 1000);    }    static class Task extends TimerTask {        public void run() {            System.out.println("**");            int i = 5 / 0;            System.out.println(i);        }    }}2. Andrdoi代码
import android.app.Activity;import android.os.Bundle;import java.util.Timer;import java.util.TimerTask;public class ddd extends Activity {    /** Called when the activity is first created. */    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);        Timer timer = new Timer();        timer.schedule(new Task(), 10, 1000);    }    static class Task extends TimerTask {        public void run() {            System.out.println("**");            int i = 5 / 0;            System.out.println(i);        }    }} 表现为,J2SE程序会因java.lang.ArithmeticException: / by zero挂掉。Android程序会每隔一秒打印一行“**”,就是说错误代码没有抛出异常,而是被简单的忽略掉。
所以,开发TimerTask时要小心的处理异常,把可能抛出的异常都catch住处理掉。
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表