手がかりになる情報
プログラムの進行についての情報
Canvas の振る舞いを見て考えるより, 変数の値や, プログラムのどこまで進んだかを
示すメッセージを見て考える方が, 問題の所在が分かりやすいです.
挙動がおかしなときには, 要所で, メッセージや変数の値を出力させるといいでしょう.
例外についての情報
実行時になんらかの例外で異常終了する場合, その例外についての情報を得ることが有益です.
まず. throw-chatch で囲みます.
Exception e に対して, e.toString() で例外の簡単な内容が分かります.
また, e.printStackTrace() では, どのメソッドからよばれたどのメソッドの中で
その例外が発生したかがわかります.
catch のなかで, これらを表示するようにします.
StackTrace.print
情報の表示の方法
System.out.println()
CLDC DoJa でも
System.out.println
が使えます.
エミュレータではコンソールに,
実機(携帯電話)ではトレース情報に出力されます.
挙動がおかしなときには, 要所で, メッセージや変数の値を出力させるといいでしょう.
ADF設定で AppTrace=Y と設定すると,
実機で実行したときに,
エラー出力など,
エミュレータのコンソール出力に相当するものが保存されます.
そして(携帯電話の機種によるが)
のようなメニューから見ることができます.
Graphics.drawString や Canvas.setSoftKeyLabel などの利用
異常終了する場合以外は,
Graphics.drawString で Canvas に情報の文字列を描画したり,
Canvas.setSoftLabel(), Panel.setSoftLabel() で
ソフトキーラベルに情報をセットしたりするという方法も使えます.
事例別にした方がわかりよい?
- コンパイルエラー
- エミュレータでのランタイムエラー
→ArrayOutOfBoundsException
- 携帯にダウンロードできない(不正です, などと言われる)
→ADF設定, メモリー超過?
- 携帯でのランタイムエラー