InterruptedException 在 printStacktrace j2me 中引发 NullPointerException
我正在处理 j2me 中的 midlet,并且我有一个线程类(称为 chan),它只执行以下操作:
public class Chan extends Thread {
public void run(){
try {
Thread.sleep(5000);
} catch (InterruptedException ex) {
System.err.println("Chan thread woke up " + ex.toString());
ex.printStackTrace();
System.err.println("Stacktrace end");
}
}
}
我正在尝试 chan.interrupt();来自仅执行以下操作的主 midlet 代码:
public void startApp() {
Chan ch = new Chan();
ch.start();
try {
Thread.sleep(1000);
} catch (InterruptedException ex) {
System.err.println("error interrupting: "+ ex.toString());
ex.printStackTrace();
}
ch.interrupt();
}
我收到的是:
Chan thread woke up java.lang.InterruptedException
java.lang.InterruptedException
java.lang.NullPointerException
at org.netbeans.mobility.antext.StackTraceTranslator.getLineNumber(StackTraceTranslator.java:219)
at org.netbeans.mobility.antext.StackTraceTranslator.translate(StackTraceTranslator.java:121)
at org.netbeans.mobility.antext.RunTask$StackTraceTranslatorHandler$1.flush(RunTask.java:780)
at org.netbeans.mobility.antext.RunTask$StackTraceTranslatorHandler$1.run(RunTask.java:826)
at java.lang.Thread.run(Thread.java:722)`
提到的行位于 Thread 的 run 方法内:
public void run() {
if (target != null) {
target.run(); <-- 722nd line
}
}
除了奇怪的堆栈跟踪之外,程序中的所有内容似乎都运行良好。如果我只是删除 Chan 线程中的 printStacktrace ,则不会打印这样的 nullpointerException 。
所以我不明白这个 nullpointerException 试图告诉我什么,也不明白为什么 InterruptedException 的堆栈跟踪是 1 行,而跟踪的其余部分丢失了。
模拟器是 Oracle Java(TM) Platform Micro Edition SDK 3.0.5,我正在 Netbeans 上工作
I'm dealing with a midlet in j2me, and I have this thread class (say called chan) which only does the following:
public class Chan extends Thread {
public void run(){
try {
Thread.sleep(5000);
} catch (InterruptedException ex) {
System.err.println("Chan thread woke up " + ex.toString());
ex.printStackTrace();
System.err.println("Stacktrace end");
}
}
}
And i'm trying a chan.interrupt(); from the main midlet code which only does the following:
public void startApp() {
Chan ch = new Chan();
ch.start();
try {
Thread.sleep(1000);
} catch (InterruptedException ex) {
System.err.println("error interrupting: "+ ex.toString());
ex.printStackTrace();
}
ch.interrupt();
}
What I'm receiving is this:
Chan thread woke up java.lang.InterruptedException
java.lang.InterruptedException
java.lang.NullPointerException
at org.netbeans.mobility.antext.StackTraceTranslator.getLineNumber(StackTraceTranslator.java:219)
at org.netbeans.mobility.antext.StackTraceTranslator.translate(StackTraceTranslator.java:121)
at org.netbeans.mobility.antext.RunTask$StackTraceTranslatorHandler$1.flush(RunTask.java:780)
at org.netbeans.mobility.antext.RunTask$StackTraceTranslatorHandler$1.run(RunTask.java:826)
at java.lang.Thread.run(Thread.java:722)`
the line mentioned is within the run method of Thread:
public void run() {
if (target != null) {
target.run(); <-- 722nd line
}
}
Everything seems to be operating fine in the program other than the weird stacktrace. If I just delete the printStacktrace
in Chan thread, no such nullpointerException is printed.
So I don't understand what this nullpointerexception is trying to tell me, nor why the stacktrace for the interruptedexception is 1 line and the rest of the trace is missing.
The emulator is Oracle Java(TM) Platform Micro Edition SDK 3.0.5 and I'm working on Netbeans
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这是 Netbeans 中的一个错误:
http://netbeans.org/bugzilla/show_bug.cgi? id=170792
已解决,请尝试升级到最新版本的 Netbeans。
This is a bug in Netbeans:
http://netbeans.org/bugzilla/show_bug.cgi?id=170792
It has been resolved, so try upgrading to the latest version of Netbeans.