浏览 2966 次
锁定老帖子 主题:TimerTask抛不出运行时异常
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2010-02-22
用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住处理掉。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |