例外エラーの表示

例外エラーのスタックをダイアログに表示します。

try {

     int i = Integer.parseInt("a");

} catch (Exception e) {

    StackTraceElement[] stacks = e.getStackTrace();
    StringBuilder sb = new StringBuilder();

    sb.append(e.getClass().getName());
    sb.append(": ");
    sb.append(e.getMessage());
    sb.append("\n");

    for (int i = 0; i < stacks.length; i++) {

        StackTraceElement stack = stacks[i];

        sb.append("    at ");
        sb.append(stack.getClassName());
        sb.append(".");
        sb.append(stack.getMethodName());
        sb.append("(");
        sb.append(stack.getFileName());
        sb.append(":");
        sb.append(stack.getLineNumber());
        sb.append(")");
        sb.append("\n");
    }

    AlertDialog.Builder dlg = new AlertDialog.Builder(this);
    dlg.setTitle("例外エラー発生");
    dlg.setMessage(sb.toString());
    dlg.setNegativeButton("閉じる", new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int which) {
        }
    });
    dlg.show();
}