【发布时间】:2018-03-05 17:28:57
【问题描述】:
我正在编写一个返回 FragmentManager 实例的方法,如下面的代码所示。 问题是,如果传递给方法的上下文为空,我想抛出异常,然后终止应用程序。
发生的情况是,当我将 null 传递给下面提到的方法时,应用程序关闭但 NullPointerException 中的消息是:
getFragmentManagerInstance: Context reference is null
不显示
请告诉我如何抛出异常并正确终止应用程序。
库:
public static FragmentManager getFragmentManagerInstance(Activity activity) throws Exception {
try {
if (activity != null) {
return activity.getFragmentManager();
} else {
throw new NullPointerException("getFragmentManagerInstance: Context reference is null");
}
} catch (NullPointerException e) {
System.exit(1);
return null;
}
}
【问题讨论】:
-
为什么要抛出异常?为什么不直接终止?
-
@AndyTurner 我认为这是在终止应用程序之前显示异常的好方法..但是如果我不会抛出一个接收并只是终止应用程序,我该如何打印一条日志消息到那么用户呢?
-
不要抓住它。让它传播起来。
-
@user2121 显示异常的最佳方式是
new WhateverExceptionType().printStackTrace(),或类似的。您可以创建异常而不抛出它们。 -
@user2121 你应该在catch块中记录异常,在
System.exit()之前,异常堆栈跟踪不会被魔法打印出来。
标签: java android exception exception-handling nullpointerexception