在程序開發(fā)中问芬,異常不可避免,一方面可以幫助我們快速定位程序到程序錯誤位置,另一方面異常會導(dǎo)致程序crash始鱼。
作為Android開發(fā)人員,有沒有什么方法可以幫助我們既可以利用異常來快速定位錯誤脆贵,又可以避免程序crash呢医清?
以下是一個小技巧,即利用BuildConfig.DEBUG變量在debug環(huán)境下拋出異常卖氨,在release環(huán)境下不做處理:
public static void safeThrow(@Nullable Context context, @NonNull RuntimeException e) {
if (BuildConfig.DEBUG) {
if (Looper.myLooper() != Looper.getMainLooper()) {
throw e;
}
Activity activity = context instanceof Activity ? (Activity) context : null;
//如果contest是Activity会烙,可以利用Activity直接彈出Alert
if (activity == null) {
throw e;
} else {
new AlertDialog.Builder(activity)
.setView(view)
.show();
}
}
}
在需要拋出異常的邏輯中使用以上的靜態(tài)方法,即可以實(shí)現(xiàn)只在debug環(huán)境下拋出異常了筒捺。
歡迎關(guān)注公眾號wutongke柏腻,定期推送移動開發(fā)前沿技術(shù)文章: