package yuku.kirimfidbek; import android.os.SystemClock; import android.util.Log; import java.io.PrintWriter; import java.io.StringWriter; import java.lang.Thread.UncaughtExceptionHandler; public class TangkapSemuaEror { public static final String TAG = TangkapSemuaEror.class.getSimpleName(); //$NON-NLS-1$ final PengirimFidbek pengirimFidbek_; private UncaughtExceptionHandler defaultUEH_; private UncaughtExceptionHandler handler_ = new UncaughtExceptionHandler() { @Override public void uncaughtException(Thread t, Throwable e) { StringWriter sw = new StringWriter(4000); e.printStackTrace(new PrintWriter(sw, true)); String pesanDueh = "[DUEH2] thread: " + t.getName() + " (" + t.getId() + ") " + e.getClass().getName() + ": " + e.getMessage() + "\n" + sw.toString(); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ Log.w(TAG, pesanDueh); pengirimFidbek_.tambah(pesanDueh); pengirimFidbek_.cobaKirim(); // Coba tunggu 3 detik sebelum ancur. Ato ancur aja ya? SystemClock.sleep(3000); Log.w(TAG, "DUEH selesai."); //$NON-NLS-1$ // panggil yang lama (dialog force close) if (defaultUEH_ != null) { defaultUEH_.uncaughtException(t, e); } } }; TangkapSemuaEror(PengirimFidbek pengirimFidbek) { pengirimFidbek_ = pengirimFidbek; } public void aktifkan() { defaultUEH_ = Thread.getDefaultUncaughtExceptionHandler(); Log.d(TAG, "defaultUEH_: " + defaultUEH_); Thread.setDefaultUncaughtExceptionHandler(handler_); } }