大佬教程收集整理的这篇文章主要介绍了android – 记录它后的Rethrow UncaughtExceptionHandler异常,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我在eclipse中开发,eclipse不允许我重新抛出异常.它显示错误说“未处理的异常类型Throwable:Surround with try / catch”.我怎样才能重新抛出异常?
public class MainApplication extends Application { @Override public void onCreate() { super.onCreate(); try { //Log exception before app force closes Thread.currentThread().setUncaughtExceptionHandler(new UncaughtExceptionHandler() { @Override public void uncaughtException(Thread thread,Throwable ex) { AnalyticsUtils.getInstance(MainApplication.this).trackEvent( "Errors",// Category "MainActivity",// Action "Force Close: "+ex.toString(),// Label 0); // Value AnalyticsUtils.getInstance(MainApplication.this).dispatch(); Toast.makeText(MainApplication.this,"Snap! Something broke. Please report the Force Close so I can fix it.",Toast.LENGTH_LONG); //rethrow the Exception so user can report it //throw ex; //<-- **eclipse is showing an error to surround with try/catch** } }); } catch (Exception e) { e.printStackTrace(); } }
}
假设您正在覆盖API接口并且(a)无法修改此签名并且(b)不想因为您将其抛弃在上下文之外,您是否可以使用装饰器模式并基本上将默认子类化UncaughtExceptionHandler实现记录您的消息,然后让它像往常一样进行处理?
编辑:未经测试,但这看起来有点像:
final UncaughtExceptionHandler subclass = Thread.currentThread().getUncaughtExceptionHandler(); Thread.currentThread().setUncaughtExceptionHandler(new UncaughtExceptionHandler() { @Override public void uncaughtException(Thread thread,Throwable ex) { // your code AnalyticsUtils.getInstance(MainApplication.this).trackEvent( "Errors",// Category "MainActivity",// Action "Force Close: "+ex.toString(),// Label 0); // Value AnalyticsUtils.getInstance(MainApplication.this).dispatch(); Toast.makeText(MainApplication.this,Toast.LENGTH_LONG).show(); // carry on with prior flow subclass.uncaughtException(thread,ex); } });
以上是大佬教程为你收集整理的android – 记录它后的Rethrow UncaughtExceptionHandler异常全部内容,希望文章能够帮你解决android – 记录它后的Rethrow UncaughtExceptionHandler异常所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。