【问题标题】:Returning Exception to the caller function向调用者函数返回异常
【发布时间】:2018-10-17 09:05:22
【问题描述】:

我有一个打印生成的 ZPL 的函数。如果 PrintAsync 函数的返回值为 null,我的调用函数创建 Request.CreateResponse<string>(ZPL) 并返回 ZPL,否则返回消息 Request.CreateErrorResponse(HttpStatusCode.SeeOther, printerMessage);

public async Task<Exception> PrintAsync(string zString)
{
      try
      { 
          await print(zString);
      }
      catch (Exception pe)
      {
         // assign pe to prop 
      }
      return prop;
 }

这很有效,而且在建立与打印机的连接时,我可以很容易地知道何时出现问题。这是一种可接受的错误通知方式吗?

【问题讨论】:

  • 这真的很不标准。为什么不采用标准方法,让异常被抛出,即删除 PrintAsync 中的 try/catch 并在必要时在调用者中捕获它?
  • @ckuri 这个函数有很多调用者,我认为这可能是一种更简单的方法,而不是处理控制器上的每个调用。

标签: c# async-await asp.net-web-api2 task-parallel-library


【解决方案1】:

如果您可以使用不同的方法通知用户错误,例如 CreateErrorResponse,(使用线程安全的“存储”,例如并发包,来处理来自同一用户的多个并发请求),并且有足够的信息来纠正问题。那么之前处理抛出的错误应该没有问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-03-30
    • 2013-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-27
    相关资源
    最近更新 更多