目前我通过捆绑传递:
try { this.ListPackageActivitIEs();} catch (Exception e) { Intent intent = new Intent().setClass(this,ExceptionActivity.class).putExtra("Exception",e); startActivity(intent);}
但当它到达那里时:
if (!(this.bundle.getParcelable("Exception") != null)) throw new indexoutofboundsexception("Index \"Exception\" does not exist in the parcel." + "/n" + "Keys: " + this.bundle.keySet().toString());
抛出这个甜蜜的异常但是当我查看keySet和bundle的详细信息时,它会告诉我有一个可以使用名为“Exception”的密钥的可分配对象.
我知道这与类型有关,但我不明白我做错了什么.我只想转储有关异常的信息,屏幕上的任何异常.有没有办法做到这一点,而不必每次都将所有信息压缩成一个字符串?
解决方法 当我在寻找将异常从服务传递到活动的方法时,我偶然发现了这个问题.但是,我发现了一个更好的方法,你可以使用Bundle类的putSerializable()方法.加上:
Throwable exception = new RuntimeException("Exception");Bundle extras = new Bundle();extras.putSerializable("exception",(Serializable) exception);Intent intent = new Intent();intent.putExtras(extras);
要检索:
Bundle extras = intent.getExtras();Throwable exception = (Throwable) extras.getSerializable("exception");String message = exception.getMessage();总结
以上是内存溢出为你收集整理的android – 将异常作为一个包传递全部内容,希望文章能够帮你解决android – 将异常作为一个包传递所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)