Web应用程序请求

时间:2015-05-28 15:47:12

标签: c# web-applications

我有一个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();
        }
    });

提前致谢

1 个答案:

答案 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");

显然,您可以创建ExceptionApplicationException的子类,但这是您的通话。

现在为什么可以使用null调用此方法是另一个问题。