エラー処理について
とは言え、catch 漏れまで捕まえてはいないのですが。
とりあえずマトモな開発に携わったことがないので know-how さえ無かったりする微妙っぷりなんですが、try/catch で例外を捕まえた時にどうしたものか、ってことで以下な方針で処理をでっち上げてみたので晒してみます。識者な方々に間違いなどをご指摘頂ければ幸いです。
- AlertDialog でメッセージ通知
- ボタンを押したらプログラム終了
実装なんですが、onCreate で
mAB = new AlertDialog.Builder(this); mAB.setTitle("エラー"); mAB.setPositiveButton("OK", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { onDestroy(); android.os.Process.killProcess(android.os.Process.myPid()); } }); mAB.setCancelable(false);
で、例外を捕まえたら UI Thread だと以下なカンジで
} catch(JSONException e) { Log.e(TAG, "Error parsing data" + e.toString()); mAB.setMessage("ネットワーク通信エラーです"); mAB.create().show(); }
UI Thread ではない場合は以下。
} catch (Exception e) { mAB.setMessage("ネットワーク通信エラーです"); mHandler.post(new ErrorProcess()); }
ErrorProcess ってクラスは Runnable を実装してて run メソドの中でダイアログ表示してるだけです。メッセージの出し方てきには res/values/string.xml とか使うべきでしょうね。