我有一个Web应用程序请求,如果为null,则抛出一个基本异常。
任何人都可以推荐比通用例外更好的东西吗?我确定我的客户想要让用户知道请求为空的内容,甚至强制请求不为空。
代码示例:
mTwitterLoginButton = (TwitterLoginButton) findViewById(R.id.twitter_login_button);
mTwitterLoginButton.setCallback(new Callback<TwitterSession>() {
@Override
public void success(Result<TwitterSession> result) {
Intent i = new Intent(getBaseContext(), FeedActivity.class);
i.putExtra("Socials", "Twitter");
i.putExtra("Twitter AuthToken", result.data.getAuthToken().token);
i.putExtra("Twitter AuthSecret", result.data.getAuthToken().secret);
i.putExtra("Twitter UserName", result.data.getUserName());
i.putExtra("Twitter UserID", result.data.getUserId());
startActivity(i);
}
@Override
public void failure(TwitterException exception) {
new SnackBar.Builder(mActivity)
.withMessage("Twitter Login Failed.")
.withBackgroundColorId(R.color.tw__blue_pressed)
.show();
exception.printStackTrace();
}
});
提前致谢
答案 0 :(得分:1)
用户不会知道异常类型之间的区别,期望他们对特定type
采取行动是一个愚蠢的赌注,对用户有用的是有意义的消息,模糊的异常名称和堆栈跟踪仅对我们开发人员有用。
通过堆栈跟踪向操作的用户报告状态也不是一个好主意,但我无法理解为什么你的方法将以null开始调用,所以这是一个关键的例外,应该是thrown
。
有很多方法可以提供更多信息,但最简单的是这样:
if (req == null)
throw new Exception("Request was not valid.");
你的问题中缺少的是如何发生这种情况,你的异常细节可以说明它是如何可能的。
if (req == null)
throw new Exception("Request was not valid. Perhaps you did operation A instead of doing expected operation B... blah blah");
显然,您可以创建Exception
或ApplicationException
的子类,但这是您的通话。
现在为什么可以使用null调用此方法是另一个问题。