我是BlackBerry应用的新开发者。我在程序中发现了运行时错误。 但我不确定程序中出现了哪种类型的错误。我不知道如何在BlackBerry应用程序中看到错误。
我在Eclipse Helios工作。
如何查看BlackBerry程序中的运行时错误?
答案 0 :(得分:0)
在Eclipse中,您可以通过USB电缆连接真正的BlackBerry设备来调试应用程序,也可以下载a BlackBerry simulator and use it to test your app。请注意,Windows仅支持BlackBerry模拟器。
开始调试后,您应该看到Eclipse 调试 透视图。通常,Eclipse中的一个打开窗口将是控制台窗口。如果您没有看到,请使用Eclipse菜单:
Window -> Show View -> Console
当您的应用运行(或您的设备已连接)时,您应该在控制台窗口中看到如下输出:
[0.0] JVM: bklt[1]: setTimeout 120
[0.0] JVM: bklt[1] @438007: JBSC on=0
[0.0] JVM: bklt[1] @438007: SC 0
[0.0] JVM: bklt[1]: setTimeout 120
[0.0] VM:TRJFp=net_rim_services_impl
[0.0] net_rim_crypto_1-3(4CC8AA32)
[0.0] StatusClean
您的程序创建的任何标准输出(例如System.out.println()
)都将与来自操作系统的这些消息混合在一起。
BlackBerry中的正常java.lang.Exception
对象删除了大部分有用信息,因此如果您不知道抛出什么类型的异常,或者在哪里,您可以选择仅通过{{3}来调试问题在catching all java.lang.Throwable objects中:
public static void main(String[] args) {
try {
Application app = new MyApp();
app.enterEventDispatcher();
} catch (Throwable t) {
t.printStackTrace();
}
}
public MyApp() {
ButtonScreen bs = new ButtonScreen();
pushScreen(bs);
bs.throwException(); // <- for test purposes!
}
然后,您将在控制台窗口中看到类似的内容,并可以找出代码中出现的问题:
[0.0] FocusHistory: Focus gained; App HelloBB; Component mypackage.ButtonScreen$1
[0.0] IllegalArgumentException
[0.0] testing exception handling code!
[0.0] HelloBB(51B3A691)
[0.0] ButtonScreen
[0.0] throwException
[0.0] 0x74C
[0.0] HelloBB(51B3A691)
[0.0] MyApp
[0.0] <init>
[0.0] 0x151B
[0.0] HelloBB(51B3A691)
[0.0] MyApp
[0.0] main
[0.0] 0x14B2
[0.0] VM:TRJFp=HelloBB
[0.0] net_rim_cldc-26(4CC89E31)
[0.0] BlockingTimeSource
[0.0] run
[0.0] 0x104D
[0.0] VM:TRJFp=HelloBB
[0.0] net_rim_cldc-26(4CC89E31)
[0.0] BlockingTimeSource
[0.0] run
[0.0] 0x104D
[0.0] VM:TRJFp=HelloBB
[0.0] net_rim_cldc-26(4CC89E31)
[0.0] BlockingTimeSource
[0.0] run
[0.0] 0x104D
在这种情况下,我把这段代码:
public void throwException() throws Exception {
throw new IllegalArgumentException("testing exception handling code!");
}
进入我的应用,以便我的MyApp#main()
方法调用MyApp
构造函数,该方法调用ButtonScreen#throwException()
方法。