如果一个函数需要一个返回值,但是在函数内部,我捕获了一个错误并想中断

吉米1988

如果一个函数需要一个返回值,但是在函数内部我遇到了一个错误并想退出该函数,我该如何在C#中执行此操作...我的问题是(可以随意跳到注释行):

    public static async Task<string> GetData(string url, string props = "")
    {
        string query = url + "?oauth_token=" + Contract.access_token + props;
        HttpWebRequest request = (HttpWebRequest)WebRequest.Create(APIURL + query);
        request.Headers[HttpRequestHeader.IfModifiedSince] = DateTime.Now.ToString();
        request.Method = HttpMethod.Get;

        try
        {
            HttpWebResponse response = (HttpWebResponse)await request.GetResponseAsync();

            Debug.WriteLine(response.ContentType);
            System.IO.Stream responseStream = response.GetResponseStream();
            string data;
            using (var reader = new System.IO.StreamReader(responseStream))
            {
                data = reader.ReadToEnd();
            }
            responseStream.Close();

            APIError error = new APIError ();
            try
            {
                using (MemoryStream stream = new MemoryStream(Encoding.UTF8.GetBytes(data)))
                {
                    DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(APIError ));
                    error = (APIError )serializer.ReadObject(stream);
                }
                MessageBox.Show(error.error_description);
                return null; // I WANT TO BREAK OUT HERE, I really don't want the application to continue its thread... Is there a way of doing this without having to go and code all my controller model calls to try and catch?
            }
            catch (Exception e)
            {
                return data; // The api did not return an error so continue as normal
            }
        }
        catch (Exception ex)
        {
            var we = ex.InnerException as WebException;
            if (we != null)
            {
                var resp = we.Response as HttpWebResponse;
                var code = resp.StatusCode;
                MessageBox.Show("RespCallback Exception raised! Message:{0}" + we.Message);
                Debug.WriteLine("Status:{0}", we.Status);
                return we.Message;
            }
            else
                throw;
        }
    }
西蒙·怀特黑德

不要抓住例外。

将异常留给调用者捕获-或选择捕获该异常并将其包装为您自己的Exception类型。

您将所有鸡蛋都放在这里的一个篮子里-抓得太远了,给您留下了很小的摆动空间。让气泡冒出来为您提供了更多处理它的选择。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如果我在返回一个函数的函数中延迟一个函数会怎样?订购如何?

来自分类Dev

错误预期在箭头函数的末尾返回一个值

来自分类Dev

我的函数返回一个字符串,但是比较总是错误的

来自分类Dev

使用另一个函数返回值

来自分类Dev

我想在另一个函数中使用一个函数的返回值,而无需再次运行该函数。(蟒蛇)

来自分类Dev

PHP在返回值之前遍历一个函数

来自分类Dev

如果一个函数返回一个std :: unique_ptr,是否假设每个返回值都是一个新对象是合理的吗?

来自分类Dev

我收到一个错误,我的函数需要2个输入,但是我确实输入了2个输入

来自分类Dev

在python中循环遍历一个函数,但是在调用函数数组中的一个函数时重新定义一个变量

来自分类Dev

在继续操作之前,先检查一个Promise函数的返回值。方法错误?

来自分类Dev

将一个函数的返回值传递给已经设置了参数的另一个函数?

来自分类Dev

我的函数返回一个对象,但是我无法通过返回值访问该对象的属性。

来自分类Dev

在调用函数内部的其他函数之前,函数如何以及在何处保存“一个函数的返回值”?

来自分类Dev

我想从一个函数返回一个值

来自分类Dev

一个仅从KeyValuePair返回值的函数

来自分类Dev

将一个方法的返回值解析为另一个函数的两个参数?

来自分类Dev

我该如何编写一个需要一个sequence的函数,并返回一个仅包含一个元素的映射的相同序列?

来自分类Dev

在c++中使用一个函数的返回值作为另一个函数的参数

来自分类Dev

如何在另一个变量中捕获jquery ajax函数的返回值

来自分类Dev

我想使用指针从函数返回多个值,但它返回一个值

来自分类Dev

我有一个函数,然后是一个 if else 语句,然后是一个包含数学的返回值

来自分类Dev

在同一个“返回值对象”中访问一个 javascript 函数

来自分类Dev

使用 Python 将返回值从一个函数传递到另一个函数

来自分类Dev

如何让我的代码在最后输出一个格式化的值,并将它放在一个函数中,并带有一个返回值?

来自分类Dev

如何让我的函数在地图中返回一个值而不是一个 Promise 挂起?

来自分类Dev

将一个函数的返回值检查到另一个函数中

来自分类Dev

如何重复一个函数,直到它的返回值与之前的返回值匹配?

来自分类Dev

如何将一个函数的输入值与另一个函数的返回值进行比较?

来自分类Dev

如何在另一个函数中引用 2 个函数的返回值?

Related 相关文章

  1. 1

    如果我在返回一个函数的函数中延迟一个函数会怎样?订购如何?

  2. 2

    错误预期在箭头函数的末尾返回一个值

  3. 3

    我的函数返回一个字符串,但是比较总是错误的

  4. 4

    使用另一个函数返回值

  5. 5

    我想在另一个函数中使用一个函数的返回值,而无需再次运行该函数。(蟒蛇)

  6. 6

    PHP在返回值之前遍历一个函数

  7. 7

    如果一个函数返回一个std :: unique_ptr,是否假设每个返回值都是一个新对象是合理的吗?

  8. 8

    我收到一个错误,我的函数需要2个输入,但是我确实输入了2个输入

  9. 9

    在python中循环遍历一个函数,但是在调用函数数组中的一个函数时重新定义一个变量

  10. 10

    在继续操作之前,先检查一个Promise函数的返回值。方法错误?

  11. 11

    将一个函数的返回值传递给已经设置了参数的另一个函数?

  12. 12

    我的函数返回一个对象,但是我无法通过返回值访问该对象的属性。

  13. 13

    在调用函数内部的其他函数之前,函数如何以及在何处保存“一个函数的返回值”?

  14. 14

    我想从一个函数返回一个值

  15. 15

    一个仅从KeyValuePair返回值的函数

  16. 16

    将一个方法的返回值解析为另一个函数的两个参数?

  17. 17

    我该如何编写一个需要一个sequence的函数,并返回一个仅包含一个元素的映射的相同序列?

  18. 18

    在c++中使用一个函数的返回值作为另一个函数的参数

  19. 19

    如何在另一个变量中捕获jquery ajax函数的返回值

  20. 20

    我想使用指针从函数返回多个值,但它返回一个值

  21. 21

    我有一个函数,然后是一个 if else 语句,然后是一个包含数学的返回值

  22. 22

    在同一个“返回值对象”中访问一个 javascript 函数

  23. 23

    使用 Python 将返回值从一个函数传递到另一个函数

  24. 24

    如何让我的代码在最后输出一个格式化的值,并将它放在一个函数中,并带有一个返回值?

  25. 25

    如何让我的函数在地图中返回一个值而不是一个 Promise 挂起?

  26. 26

    将一个函数的返回值检查到另一个函数中

  27. 27

    如何重复一个函数,直到它的返回值与之前的返回值匹配?

  28. 28

    如何将一个函数的输入值与另一个函数的返回值进行比较?

  29. 29

    如何在另一个函数中引用 2 个函数的返回值?

热门标签

归档