错误处理和调试
|
感谢网友
zxzxy1988 的翻译
错误处理和调试
leJOS NXJ 提供了错误处理和调试的若干功能,它们包括:
下面有一部分提到的远程监视和跟踪功能,也可以用来调试。 异常(Exceptions)leJOS 支持绝大多数的JAVA标准异常类别,同时用户也可以创建他们自己的异常类别。 例如: 下面这个异常测试的简单程序说明了对于一个没有考虑到的异常,将会发生什么情况——在这个例子中,是一个数组序列号超出范围(ArrayIndexOutOfBounds)的异常。
数据终止(Data Aborts)如果leJOS的固件崩溃,会发生数据终止的情况。屏幕显示了程序崩溃处PC指针的当前值,以及其他错误的详细信息。 屏幕显示将会如下所示: DATA ABORT PC 00140BAC AASR 1831BF01 ASR 00020601 OPCODE ??? DEBUG1 00020010 DEBUG2 00000000 通常情况下,如果你执行一个并不是leJOS NXJ二进制格式的文件,或者是执行一个不完整的leJOS NXJ 文件,都会引起上述崩溃。 如果在其他情况下,你也遇到了该问题,那么你应该在leJOS NXJ论坛向leJOS团队报告这个错误。 回到顶部远程调试(Remote Debugging)你可以把你的电脑当做一个远程控制台,来显示你的NXJ程序的运行状态。lejos.nxt.comm.RConsole类就有这种功能。因为这个类没有实例,所有的方法都是静态的。 你可以用一下其中之一的方法来开始调试:
NXT显示一个 然后等待电脑的显示器连接上。 然后在你的电脑上执行nxjconsole 程序。当连接建立之后,NXT会显示 如果你使用了延时开启的变量,系统将等待特定秒数的时间。如果在此期间,调试监视器(debug monitor)仍然没有连接上,系统将在没有调试的状况下进行运行(proceeds without debugging.)。如果超时时间为0,那么系统将永久等待。 你也可以使用 ConsoleViewer 应用程序来显示这个超时时间。 调试的状态可以用以下方法来输出:
如果没有执行有效的打开语句,调试的输出会被丢弃。如果有有效的输出, 那么这些字符会在电脑上运行的窗口或者是 nxjconsole 运行的终端显示。 当调试结束后,你应该执行下面这个方法:
该方法会关闭USB或者蓝牙连接。 例如:
|