我是靠谱客的博主 默默西装,最近开发中收集的这篇文章主要介绍cannot handle exception type PackageManager.NameNotFoundException thrown by implicit super construct,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述


别人拿来给我改的代码,在类属性里放了这么一段:

final PackageManager pm = getPackageManager();
final PackageInfo pi = pm.getPackageInfo(getPackageName(), 0);
ApplicationInfo ai = pi.applicationInfo;
int uid = ai.uid;
long a = TrafficStats.getUidRxBytes(uid);
long b = TrafficStats.getUidTxBytes(uid);


final PackageInfo pi = pm.getPackageInfo(getPackageName(), 0);报了这么个错误:

Default constructor cannot handle exception type PackageManager.NameNotFoundException thrown by implicit super constructor. Must define an explicit constructor

翻看API,看到PackageManager  是个虚类,getPackageInfo是个虚方法。原本以为错就在这里了。

不过也许在别处实现了这个方法呢?虽然API中没说明何处实现了它,这个有点坑,但是,应该不至于这么坑吧。。。

然后看错误内容,是说父类构造器是显式的,所以子类也不能用默认构造器,所以就出现了 NameNotFoundException。

尼玛,这是要我去给加个构造器的节奏吗?这不是坑爹嘛~

但是,为毛线有异常没有 出现 try-catch?

因为这段代码是放在域中的。

移到函数里去加上异常处理就ok了。

但是既然说出现了未处理的异常,为什么没有第一时间想到去捕获处理它?

因为习惯了用eclipse自动加上异常处理。

习惯了在执行报错后加上全局的异常捕获。

所以形成了思维定势。


为什么形成思维定势?因为编程这门学问太博大精深了,编程的时候脑子一点都不敢跳。

所以说,编程这玩意真不适合我。。。


最后

以上就是默默西装为你收集整理的cannot handle exception type PackageManager.NameNotFoundException thrown by implicit super construct的全部内容,希望文章能够帮你解决cannot handle exception type PackageManager.NameNotFoundException thrown by implicit super construct所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(41)

评论列表共有 0 条评论

立即
投稿
返回
顶部