.net关于异常捕获的语法糖

布谷歌 2017-07-25 10:27:35
哈哈,.net貌似没有关于异常捕获的语法糖。

比如下面的语句,catch到的两个自定义异常做的处理是相同的
try
{
......
}
catch (ResponseErrorException customError)
{
logHelper.Write(string.Format("商户查证可疑订单执行:{0},\r\n错误原因:{1}", JsonConvert.SerializeObject(item), customError.Message));
}
catch (ThirdPlatformException customError)
{
logHelper.Write(string.Format("商户查证可疑订单执行:{0},\r\n错误原因:{1}", JsonConvert.SerializeObject(item), customError.Message));
}
catch (Exception ex)
{
logHelper.Write(string.Format("商户查证可疑订单执行:{0},\r\n错误原因:{1}", JsonConvert.SerializeObject(item), ex.ToString()));
}

那么,如果可以写成类似如下方式,那就太好了:
try
{
......
}
catch (ResponseErrorException customError)
catch (ThirdPlatformException customError)
{
logHelper.Write(string.Format("商户查证可疑订单执行:{0},\r\n错误原因:{1}", JsonConvert.SerializeObject(item), customError.Message));
}
catch (Exception ex)
{
logHelper.Write(string.Format("商户查证可疑订单执行:{0},\r\n错误原因:{1}", JsonConvert.SerializeObject(item), ex.ToString()));
}


就像switch里的可以多个case做相同处理那样,多方便啊。
大家认为呢?
...全文
475 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
-一个大坑 2017-07-26
  • 打赏
  • 举报
回复
引用 6 楼 gzyes 的回复:
@happy4944 当心坑洞
现在有问题了,老板要改成看的懂得提示
正怒月神 2017-07-26
  • 打赏
  • 举报
回复
2个自定异常,说明本质应该补货不同的异常。 只是偶然性的,2个异常显示了相同的信息。 但是不代表他们应该合并起来。
-一个大坑 2017-07-25
  • 打赏
  • 举报
回复
我比较懒,都是一个方法只写一个catch
exception92 2017-07-25
  • 打赏
  • 举报
回复
想法不错啊,不过多写一个catch也不费什么事吧。
  • 打赏
  • 举报
回复
catch (ResponseErrorException customError)
catch (ThirdPlatformException customError)
{
    logHelper.Write(string.Format("商户查证可疑订单执行:{0},\r\n错误原因:{1}", JsonConvert.SerializeObject(item), customError.Message));
}
这种东西根本就是自相矛盾的,customError 跟 customError 完全是两个不同种类的东西(只是命名相同),怎么纠结到一起? 原本分开写是很正常的,合并在一起反而不正常了。就好像我写代码
if(....)
{
    var a= "张三";
    .......
}
else
{
    var a= DateTime.Now;
    .......
}
你告诉我你要把 a 合并吗?这显然是为了“形式上酷”而不管、抛弃了对变量 a 的内容理解的。
布谷歌 2017-07-25
  • 打赏
  • 举报
回复
@happy4944 当心坑洞
-一个大坑 2017-07-25
  • 打赏
  • 举报
回复
引用 3 楼 gzyes 的回复:
[quote=引用 2 楼 happy4944 的回复:] 我比较懒,都是一个方法只写一个catch
有时我们要自定义异常,捕获到这些异常会做特殊处理。 即便如此,往往也要捕获不同的异常做相应处理的。 比如模拟一个http post请求,要捕获的异常可能有网络异常,参数序列化异常。 [/quote] 一个方法一般做一件事,我也不知道他执行到哪步会出错,我都是按着正常情况想的。
布谷歌 2017-07-25
  • 打赏
  • 举报
回复
引用 1 楼 duanzi_peng 的回复:
想法不错啊,不过多写一个catch也不费什么事吧。
其实,主要也是考虑到代码的复用。就像多个case做相同的处理。
布谷歌 2017-07-25
  • 打赏
  • 举报
回复
引用 2 楼 happy4944 的回复:
我比较懒,都是一个方法只写一个catch
有时我们要自定义异常,捕获到这些异常会做特殊处理。 即便如此,往往也要捕获不同的异常做相应处理的。 比如模拟一个http post请求,要捕获的异常可能有网络异常,参数序列化异常。

17,740

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 .NET Framework
社区管理员
  • .NET Framework社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧