使用throw命令不会引发异常
我正在编写一个方法,返回一个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;
}
}
消息“getFragmentManagerInstance:Context reference is null”正在存储在e中。 您需要打印它以使其显示在屏幕上。
在catch块中,在System.exit(1)之前添加一条打印语句,
catch (NullPointerException e) {
System.out.println(e);
System.exit(1);
return null;
}
只需删除try块。 只需键入
if (activity != null) {
return activity.getFragmentManager();
} else {
throw new NullPointerException("getFragmentManagerInstance: Context reference is null");
}
会做你想做的事情,因为NullPointerException
是一个未经检查的异常。
不显示
当然,那是因为你在吞噬异常:
} catch (NullPointerException e) {
System.exit(1);
return null;
}
这个消息是在e
传递的,并且你没有在catch
块中使用它。
请注意,捕获NullPointerException
几乎从不是正确的做法。 在这种情况下,您可以直接打印消息并终止应用程序:
if (thing == null) {
System.err.println("It's null!");
System.exit(1);
}
链接地址: http://www.djcxy.com/p/13271.html